有没有办法在python中使用itertools来清理嵌套迭代?

Sko*_*ius 8 python iterator nested-loops python-itertools

假设我有以下代码:

a = [1,2,3]
b = [2,4,6]
c = [3,5,7]

for i in a:
  for j in b:
    for k in c:
      print i * j * k
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在一行中合并迭代器而不是嵌套?

Kas*_*mvd 11

使用itertools.product列表理解中:

In [1]: from itertools import product
In [5]: [i*j*k for i, j, k in product(a, b, c)]
Out[5]: 
[6,
 10,
 14,
 12,
 20,
 28,
 18,
 30,
 42,
 12,
 20,
 28,
 24,
 40,
 56,
 36,
 60,
 84,
 18,
 30,
 42,
 36,
 60,
 84,
 54,
 90,
 126]
Run Code Online (Sandbox Code Playgroud)