[英]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.