gpt4 book ai didi

python - lambda过滤器

转载 作者:行者123 更新时间:2023-11-28 18:34:34 24 4
gpt4 key购买 nike

我想了解 Python 中的 lambda 过滤器。我很难理解的是 lambda 过滤器中“in x, people”子句的用法。我将过滤器的目的解读为:返回序列(人)中条件“高度”为 TRUE 的那些值。因此,我最初以为它会是“lambda x:人的“高度”。为什么是 x,人?我的思维错误是什么?非常感谢!

people = [{'name': 'Mary', 'height': 160},
{'name': 'Isla', 'height': 80},
{'name': 'Sam'}]

heights = map(lambda x: x['height'],
filter(lambda x: 'height' in x, people))

print(heights) #(160,80)

最佳答案

我认为一个变量名的变化应该足以解释它:

filter(lambda person: 'height' in person, people)

您要检查每个 是否有高度。你不是在检查“人有高度”,因为那没有意义。 people 是一个集合,只有该集合的元素 可以有高度,而不是集合本身。

这是一个等效的行:

(person for person in people if 'height' in person)

关于python - lambda过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com