gpt4 book ai didi

python - 查找两个列表的所有可能组合

转载 作者:行者123 更新时间:2023-11-28 22:28:48 25 4
gpt4 key购买 nike

给定两个任意长度的列表:

list1 = ['a', 'b', 'c']
list2 = ['1', '2', '3']

list1 是对象列表,list2 是每个对象的可能值。如何找到这两个列表的所有可能组合(我不确定如果这是正确的术语)

预期输出:

[
[('a', '1'), ('b', '1'), ('c', '1')],
[('a', '1'), ('b', '1'), ('c', '2')],
[('a', '1'), ('b', '1'), ('c', '3')],
[('a', '2'), ('b', '1'), ('c', '1')],
[('a', '2'), ('b', '1'), ('c', '2')],
[('a', '2'), ('b', '1'), ('c', '3')],
[('a', '3'), ('b', '1'), ('c', '1')],
[('a', '3'), ('b', '1'), ('c', '2')],
[('a', '3'), ('b', '1'), ('c', '3')],
# etc
]

最佳答案

您可以使用 itertools.product()获取输入迭代的笛卡尔积,并将它们压缩:

from itertools import product

a = ['a', 'b', 'c']
b = ['1', '2', '3']
print([list(zip(a, p)) for p in product(b,repeat=3)])

输出:

[[('a', '1'), ('b', '1'), ('c', '1')], [('a', '1'), ('b', '1'), ('c', '2')], [('a', '1'), ('b', '1'), ('c', '3')], [('a', '1'), ('b', '2'), ('c', '1')], [('a', '1'), ('b', '2'), ('c', '2')], [('a', '1'), ('b', '2'), ('c', '3')], [('a', '1'), ('b', '3'), ('c', '1')], [('a', '1'), ('b', '3'), ('c', '2')], [('a', '1'), ('b', '3'), ('c', '3')], [('a', '2'), ('b', '1'), ('c', '1')], [('a', '2'), ('b', '1'), ('c', '2')], [('a', '2'), ('b', '1'), ('c', '3')], [('a', '2'), ('b', '2'), ('c', '1')], [('a', '2'), ('b', '2'), ('c', '2')], [('a', '2'), ('b', '2'), ('c', '3')], [('a', '2'), ('b', '3'), ('c', '1')], [('a', '2'), ('b', '3'), ('c', '2')], [('a', '2'), ('b', '3'), ('c', '3')], [('a', '3'), ('b', '1'), ('c', '1')], [('a', '3'), ('b', '1'), ('c', '2')], [('a', '3'), ('b', '1'), ('c', '3')], [('a', '3'), ('b', '2'), ('c', '1')], [('a', '3'), ('b', '2'), ('c', '2')], [('a', '3'), ('b', '2'), ('c', '3')], [('a', '3'), ('b', '3'), ('c', '1')], [('a', '3'), ('b', '3'), ('c', '2')], [('a', '3'), ('b', '3'), ('c', '3')]]

关于python - 查找两个列表的所有可能组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43358751/

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