活学活用需要时间~难难难-20250604 是时候复习filter 和 map 了 加油
Arrin 发表于 2023-3-12 10:24
power = {"吕布":999, "关羽":888, "刘备":666, "张飞":900, "赵云":789, "不二如是":999}
# 请 lam ...
可以这样修改:
power = {"吕布":999, "关羽":888, "刘备":666, "张飞":900, "赵云":789, "不二如是":999}
greater = list(filter(lambda item:item if item > 800 else None, power.items()))
print(greater)
结果:
[('吕布', 999), ('关羽', 888), ('张飞', 900), ('不二如是', 999)]
如果替换为map函数:
greater = list(map(lambda item:item if item > 800 else None, power.items()))
结果为:
[('吕布', 999), ('关羽', 888), None, ('张飞', 900), None, ('不二如是', 999)]
解释:
lambda item:item if item > 800 else None
等价于:
def function(item):
if item > 800:
return item
else:
return None
之所以要item是因为:
power.items()结果为:
dict_items([('吕布', 999), ('关羽', 888), ('刘备', 666), ('张飞', 900), ('赵云', 789), ('不二如是', 999)])
每个参数都是一个元组,取item就是名字后面的数值,例如:
for item in power().items():
print item
结果:999 888 666 900 789 999
页:
1
[2]