繁体   English   中英

从python中未知数量的列表中创建所有可能的字符组合

[英]Create all possible char combinations from an unknown amount of lists in python

我想从列表中创建所有可能的字符组合。 第一个字符需要来自第一个数组,第二个字符来自第二个数组,依此类推。

如果我有以下列表:

char1 = ['a','b','c']
char2 = ['1','2']

可能的字符串是:a1、a2、b1、b2、c1 和 c2。 我如何使代码从未知数量的未知大小的列表中生成所有组合?

问题是我不知道会有多少个列表。 在代码运行时,列表的数量将由用户决定。

这是itertools.product()的任务! 查看文档: https : //docs.python.org/2/library/itertools.html#itertools.product

>>> ["%s%s" % (c1,c2) for (c1,c2) in itertools.product(char1, char2)]
['a1', 'a2', 'b1', 'b2', 'c1', 'c2']

是的,它扩展到可变数量的未知大小的列表。

如上所述,您可以使用itertools.product()

由于您不知道列表的数量,您可以将列表列表作为参数传递:

import itertools

lists = [
    ['a','b','c'],
    ['1','2']
]

["".join(x) for x in itertools.product(*lists)]

结果:

['a1', 'a2', 'b1', 'b2', 'c1', 'c2']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM