【发布时间】:2015-12-15 16:19:50
【问题描述】:
考虑有一个列表A = [ [ ], [ ], ..., [ ] ](n 次)。 A 的每个子列表都包含几个列表。我想做的是同时迭代它们。可以使用 itertools 库中的“itertools.product”函数轻松完成。像
for i,j,k in itertools.product(A[0],A[1],A[2]):
#my code
就足够了。但是我不知道列表 A 的长度。如果是 3,我可以使用上面的代码。目前我正在做这样的事情
if len(A) == 2:
for i,j in itertools.product(A[0],A[1]):
#my code
elif len(A) == 3:
for i,j,k in itertools.product(A[0],A[1],A[2]):
#same code with minor changes to include parameter k
elif len(A) == 4:
for i,j,k,l in itertools.product(A[0],A[1],A[2],A[3]):
#same code with minor changes to include parameter k and l
由于这很乏味,我想知道是否有使用列表理解或其他方法的通用解决方案。我正在用 Python 编写代码。
【问题讨论】:
-
需要for循环吗?还有其他方法可以遍历未知长度的列表
-
不一定是for循环,但它应该足以满足目的。无论如何我得到了解决方案(使用 *-unpacking)
标签: python for-loop list-comprehension