gpt4 book ai didi

python - 从python中的for循环返回值

转载 作者:行者123 更新时间:2023-11-28 19:32:16 25 4
gpt4 key购买 nike

我正在尝试找出在 for 循环语法中将参数从一个列表或字典传递到另一个列表或字典的语法。

我想要的结果是这样的:

for bean in beans:
if bean.type == 'coffee':
print bean

只是,我不想打印到标准输出,而是想收集该字符串数据并将其附加到另一个列表。最终将列表展平。

踢球者,我想在一行中执行此操作。

我知道 ''.join() 方法,我正在寻找这个结果,以便我可以从 for-in 循环中过滤结果。

最佳答案

[bean for bean in beans if bean.type == 'coffee']

List comprehensions很整洁。更简洁的是,通常您不需要生成整个列表——您只需要一个迭代器来为您提供列表将包含的值。那是一个生成器,它们可以通过生成器表达式同样简洁地表达。它们的编写方式与列表理解相同,只是方括号变成了括号(如果它是函数调用中的唯一参数,则可以省略它们)例如'\n'.join(str(bean) for bean in beans if bean.type == 'coffee')。优点是提到的惰性,即在真正需要(请求)之前您永远不会生成值,并且您不会同时将它们全部保存在内存中(当然除非消费者这样做)。

您可以使用 itertools.chain 将多个可迭代对象(包括列表)链接到一个,或者如果您无法改变获取列表列表的事实,您可以使用 (x for list in lists for x in list)。对于涉及任意深度嵌套的通用解决方案,您需要使用递归的完整函数。

关于python - 从python中的for循环返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135211/

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