首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有列表操作的ShortHand for循环

带有列表操作的ShortHand for循环
EN

Stack Overflow用户
提问于 2021-05-04 20:05:19
回答 2查看 46关注 0票数 0

我该如何用速记的方式写下这段代码:

代码语言:javascript
复制
bigger_list=[]
for item in items:
    new_list = item.nested_items
    bigger_list += new_list

我试过了,但不起作用。

代码语言:javascript
复制
bigger_list += [item.nested_items for item in items]
EN

回答 2

Stack Overflow用户

发布于 2021-05-04 20:08:11

代码语言:javascript
复制
bigger_list = [i.nested_item for i in items]
票数 2
EN

Stack Overflow用户

发布于 2021-05-04 21:35:31

看起来您正试图从许多较小的nested_items列表(可迭代)中创建一个“合并”的bigger_list。我相信你想要做的是:

代码语言:javascript
复制
bigger_list=[]
for item in items:
    bigger_list.extend(item.nested_items)

可能会有一些通过理解来尝试这一点的诱惑,因为他们往往会变得短小和流汗:

代码语言:javascript
复制
bigger_list=[]
foo = [bigger_list.extend(item.nested_items) for item in items]

但是理解是用来创建列表的,而不是扩展列表。不要使用这样的理解。请参阅:Is it Pythonic to use list comprehensions for just side effects?

如果您仍然热衷于使用理解,您可以执行以下操作,但我认为它远不如简单的 for**:**那么容易理解

代码语言:javascript
复制
bigger_list = [nested_item for item in items for nested_item in item.nested_items]

如果意图是bigger_list是一个列表列表,或者nested_items不是可迭代的,那么@rishin给出的答案就是你想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67384433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档