|
|
可以这样修改:
- power = {"吕布":999, "关羽":888, "刘备":666, "张飞":900, "赵云":789, "不二如是":999}
- greater = list(filter(lambda item:item if item[1] > 800 else None, power.items()))
- print(greater)
复制代码
结果:
[('吕布', 999), ('关羽', 888), ('张飞', 900), ('不二如是', 999)]
如果替换为map函数:
- greater = list(map(lambda item:item if item[1] > 800 else None, power.items()))
复制代码
结果为:
[('吕布', 999), ('关羽', 888), None, ('张飞', 900), None, ('不二如是', 999)]
解释:
- lambda item:item if item[1] > 800 else None
复制代码
等价于:
- def function(item):
- if item[1] > 800:
- return item
- else:
- return None
复制代码
之所以要item[1]是因为:
power.items()结果为:
dict_items([('吕布', 999), ('关羽', 888), ('刘备', 666), ('张飞', 900), ('赵云', 789), ('不二如是', 999)])
每个参数都是一个元组,取item[1]就是名字后面的数值,例如:
- for item in power().items():
- print item[1]
复制代码
结果:999 888 666 900 789 999
|
|