Dra*_*nos 3 python list-comprehension list
我在看itertools.product,在解释中是一个函数,用于解释函数有多么有效.看起来所有的魔法都发生在这里,在一个循环中通过列表:结果= [x + [y]表示x中的结果列表中的y].所以我决定尝试创建一个循环,以便我可以更容易地按照正在发生的事情.我将示例函数修改为:
lists = [[1, 2], [3, 4], [5, 6]]
result = [[]]
for l in lists:
result = [x+[y] for x in result for y in l]
print result
Run Code Online (Sandbox Code Playgroud)
结果就是我所期待的.然而,当我试图将其分解为for循环时,我最终会在修改它时通过循环结果跳起来(我读到你不应该这样做).我的尝试:
lists = [[1, 2], [3, 4], [5, 6]]
result = [[]]
for l in lists:
for i in result:
for y in l:
result.append([i+[y]])
print result
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如何使用循环重新创建列表理解?
添加包含中间列表的临时列表.这是因为列表理解完全执行然后重写值result.
一个小代码可以演示如下
result = [[]]
for l in lists:
tmp = []
for x in result:
for y in l:
tmp.append(x+[y])
result = tmp
Run Code Online (Sandbox Code Playgroud)
这将根据需要打印相同的值.