gpt4 book ai didi

python - 在 Python 中迭代多个列表项的组合

转载 作者:太空狗 更新时间:2023-10-30 02:45:23 25 4
gpt4 key购买 nike

我有几个列表,我需要对这些列表项的每个可能组合做一些事情。对于两个列表,我可以这样做:

for a in alist:
for b in blist:
# do something with a and b

但是,如果列表比较多,比如说6、7个列表,这个方法就显得勉强了。有没有办法优雅地实现这个迭代?

最佳答案

您可以使用 itertools.product 从您的列表中进行所有可能的组合。结果将是一长串 元组,每个列表中的一个元素按照您传入列表的顺序排列。

>>> a = [1,2,3]
>>> b = ['a', 'b', 'c']
>>> c = [4,5,6]
>>> import itertools

>>> list(itertools.product(a,b,c))
[(1, 'a', 4), (1, 'a', 5), (1, 'a', 6), (1, 'b', 4), (1, 'b', 5), (1, 'b', 6), (1, 'c', 4), (1, 'c', 5), (1, 'c', 6),
(2, 'a', 4), (2, 'a', 5), (2, 'a', 6), (2, 'b', 4), (2, 'b', 5), (2, 'b', 6), (2, 'c', 4), (2, 'c', 5), (2, 'c', 6),
(3, 'a', 4), (3, 'a', 5), (3, 'a', 6), (3, 'b', 4), (3, 'b', 5), (3, 'b', 6), (3, 'c', 4), (3, 'c', 5), (3, 'c', 6)]

例如

for ai, bi, ci in itertools.product(a,b,c):
print ai, bi, ci

输出

1 a 4
1 a 5
1 a 6
... etc

关于python - 在 Python 中迭代多个列表项的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24808853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com