我在我正在开发的模块中找到了这段代码:
l = opaque_function()
thingys = [x for y in l for x in y]
我读不懂这个。通过实验,我能够确定它正在展平 2 级嵌套列表,但语法对我来说仍然不透明。它显然省略了一些可选的括号。
>>> l = [[1,2],[3,4]]
>>> [x for y in l for x in y]
[1, 2, 3, 4]
我的眼睛想将其解析为:[x for y in [l for x in y] ]
or [ [x for y in l] for x in y ]
,但这两个都失败了,因为y
没有被定义。
我应该如何阅读这篇文章?
(我怀疑当我解释这个问题时我会感到非常尴尬。)
这曾经让我很困惑。你应该像嵌套循环一样阅读它:
new_list = []
for y in l:
for x in y:
new_list.append(x)
becomes
for y in l for x in y [do] new_list.append(x)
becomes
[x for y in l for x in y]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)