使用带if条件的lambda滤波器

2024-10-03 02:37:42 发布

您现在位置:Python中文网/ 问答频道 /正文

friends_filter = ["Osama", "Wessam", "Amal", "Essam", "Gamal", "Othman"]
namess = filter(lambda names: names if names[-1].lower() == 'm', friends_filter)
for name in namess:
    print(name)

为什么它在列表名之前给我错误(语法错误)


Tags: lambdanameforifnamesfilterlowerfriends
2条回答

谓词只需返回比较结果,而不必返回值本身

friends_filter = ["Osama", "Wessam", "Amal", "Essam", "Gamal", "Othman"]
namess = filter(lambda names: names[-1].lower() == 'm', friends_filter)
for name in namess:
    print(name)

出现语法错误,因为内联if需要else语句。但在lambda表达式中不必使用内联if if names[-1].lower() == 'm' else None

相关问题 更多 >