我只是在查看itertools
文档,寻找一种摆脱嵌套 for 循环的方法,如下所示:
for a in b:
for c in b:
<statement>
但是,我什么也找不到。没有这个功能吗?我应该只保留嵌套循环吗?
我只是在查看itertools
文档,寻找一种摆脱嵌套 for 循环的方法,如下所示:
for a in b:
for c in b:
<statement>
但是,我什么也找不到。没有这个功能吗?我应该只保留嵌套循环吗?
就在这里。它被称为itertools.product
例如:
import itertools
for item in itertools.product([0, 1], repeat = 2):
print item
输出
(0, 0)
(0, 1)
(1, 0)
(1, 1)
它相当于
b = [0, 1]
for a in b:
for c in b:
print (a, c)
您可以使用chain.from iterable
:
from itertools import chain
b = [[1, 2, 3], [4, 5, 6]]
for i in chain.from_iterable(b):
print i
理想情况下,b
具有所有值。所以这转化为:
for a in b:
for c in a:
print c
工作示例。你真正想做的是扁平化一个列表,这实际上包含在itertools
.