小编gbr*_*ios的帖子

理解列表理解,以便在python中展平列表列表

我发现这种理解非常适用于展平列表列表:

>>> list_of_lists = [(1,2,3),(2,3,4),(3,4,5)]
>>> [item for sublist in list_of_lists for item in sublist]
[1, 2, 3, 2, 3, 4, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

我喜欢这比使用更好itertools.chain(),但我无法理解它.我试过用括号括起来的部分,看看我是否可以减少复杂性,但现在我只是更加困惑:

>>> [(item for sublist in list_of_lists) for item in sublist]
[<generator object <genexpr> at 0x7ff919fdfd20>, <generator object <genexpr> at 0x7ff919fdfd70>, <generator object <genexpr> at 0x7ff919fdfdc0>]

>>> [item for sublist in (list_of_lists for item in sublist)]
[5, 5, 5]
Run Code Online (Sandbox Code Playgroud)

我觉得我很难理解,因为我不太明白发电机是如何工作的......我的意思是,我以为我做了,但现在我真的很怀疑.就像我说的,我喜欢这个成语是多么紧凑,这正是我需要的,但我不愿意使用我不理解的代码.

谁能解释一下究竟发生了什么?

python list-comprehension list generator

10
推荐指数
2
解决办法
3665
查看次数

标签 统计

generator ×1

list ×1

list-comprehension ×1

python ×1