从 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']
我想根据列表创建所有可能的字符组合。第一个字符需要来自第一个数组,第二个字符需要来自第二个数组,依此类推。
如果我有以下列表:
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']