gpt4 book ai didi

python - 什么时候使用过滤器函数而不是列表理解?

转载 作者:行者123 更新时间:2023-12-04 08:34:08 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

9 个月前关闭。




Improve this question




最近,我对过滤方法有了一些了解,它是使用列表推导式的替代方法。
假设我有一个列表:

names = ["Bob", "Billy", "Samuel", "Adam", "Rob"]
现在,我想得到一个包含以字母“B”开头的名字的列表。我可以通过几种方式来解决这个问题。这是一:
b_starting_names = list(filter(lambda name: name.startswith("B"), names))
这是另一个:
b_starting_names = [name for name in names if name.startswith("B")]
有人可以解释一下列表推导式和过滤器功能之间的区别,以及为什么有人可能想要使用一种而不是另一种吗?

最佳答案

使用也没有坏处。关于 map 也可以发表类似的评论.
我倾向于使用任何一种感觉更容易阅读的东西。在你的情况下,我会避免使用 lambda,因为它有点冗长,而是使用理解。
我会用 filtermap如果我已经有一个函数存在,我可以传递给方法,这比理解更简洁。
例如,假设我编写了一个程序来查找最大名称的长度:

# Using map
longest = max(map(len, names))

# Using generator expression
longest = max(len(name) for name in names))
在上面的例子中,我会选择 map在生成器表达式上,但这完全是个人喜好。

关于python - 什么时候使用过滤器函数而不是列表理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64884396/

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