我是编程和 Python 的新手。不确定如何继续解决这个(在下面解释)问题,因此这个问题。
我有 n 个列表,每个列表包含 1 个或多个项目。我想要一个包含所有可能组合的新列表,它使用每个列表中的一个项目一次,并且始终如此。
例子:
list_1 = ['1','2','3']
list_2 = ['2','5','7']
list_3 = ['9','9','8']
结果将是:['129', '129', '128', '159', '159', '158', '179', '179', '178', '229' , '229', '228', '259', '259', '258', '329', '329', '328', '359', '359', '358', '379', ' 379', '378']
这里的示例有 3 个列表,每个列表包含 3 个项目,但可以有任意 n 个列表,每个列表包含任意 m 个元素(因此并非所有列表都需要具有相同数量的元素)。
列表的所有元素都是字符串,输出列表也包含字符串。
我该怎么办?
我查看了 itertools.combinations,但我不知道如何使用它来完成这项任务。
最佳答案
使用itertools.product()
这里:
>>> list_1 = ['1','2','3']
>>> list_2 = ['2','5','7']
>>> list_3 = ['9','9','8']
>>> from itertools import product
>>> ["".join(x) for x in product(list_1,list_2,list_3)]
['129', '129', '128', '159', '159', '158', '179', '179', '178', '229', '229', '228', '259', '259', '258', '279', '279', '278', '329', '329', '328', '359', '359', '358', '379', '379', '378']
关于Python组合生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13129454/