Python 打印所有配置列表
我有10个变量x1到x10,每个变量的可能值的数量大小在1到256之间Python 打印所有配置列表,python,Python,我有10个变量x1到x10,每个变量的可能值的数量大小在1到256之间 x1 = [1,10,20,23,12] x2 = ['string0','string1','string3'] 我需要生成所有可能的配置 1, string0,..... <till x10 value> 1, string1 1, string3 ...... 12, string0 12, string1 12, string3 输出不会打印超过三个或四个for循环。是否有更好的方法将所有可能的配置打
x1 = [1,10,20,23,12]
x2 = ['string0','string1','string3']
我需要生成所有可能的配置
1, string0,..... <till x10 value>
1, string1
1, string3
......
12, string0
12, string1
12, string3
输出不会打印超过三个或四个for循环。是否有更好的方法将所有可能的配置打印到文件中?使用
itertools
模块中的product
方法:
>>> import itertools as it
>>> x1 = [1,10,20,23,12]
>>> x2 = ['string0','string1','string3']
>>> list(it.product(x1, x2))
[(1, 'string0'),
(1, 'string1'),
(1, 'string3'),
(10, 'string0'),
(10, 'string1'),
(10, 'string3'),
(20, 'string0'),
(20, 'string1'),
(20, 'string3'),
(23, 'string0'),
(23, 'string1'),
(23, 'string3'),
(12, 'string0'),
(12, 'string1'),
(12, 'string3')]
使用
itertools
模块中的product
方法:
>>> import itertools as it
>>> x1 = [1,10,20,23,12]
>>> x2 = ['string0','string1','string3']
>>> list(it.product(x1, x2))
[(1, 'string0'),
(1, 'string1'),
(1, 'string3'),
(10, 'string0'),
(10, 'string1'),
(10, 'string3'),
(20, 'string0'),
(20, 'string1'),
(20, 'string3'),
(23, 'string0'),
(23, 'string1'),
(23, 'string3'),
(12, 'string0'),
(12, 'string1'),
(12, 'string3')]
仅仅是一个列表理解,在列表
x1
和x2
上迭代就足够了
>>> from pprint import pprint
>>> res = [(a,b) for a in x1 for b in x2]
>>> pprint(res)
[(1, 'string0'),
(1, 'string1'),
(1, 'string3'),
(10, 'string0'),
(10, 'string1'),
(10, 'string3'),
(20, 'string0'),
(20, 'string1'),
(20, 'string3'),
(23, 'string0'),
(23, 'string1'),
(23, 'string3'),
(12, 'string0'),
(12, 'string1'),
(12, 'string3')]
仅仅是一个列表理解,在列表
x1
和x2
上迭代就足够了
>>> from pprint import pprint
>>> res = [(a,b) for a in x1 for b in x2]
>>> pprint(res)
[(1, 'string0'),
(1, 'string1'),
(1, 'string3'),
(10, 'string0'),
(10, 'string1'),
(10, 'string3'),
(20, 'string0'),
(20, 'string1'),
(20, 'string3'),
(23, 'string0'),
(23, 'string1'),
(23, 'string3'),
(12, 'string0'),
(12, 'string1'),
(12, 'string3')]
这本身并不能很好地扩展到10个列表的集合。问题给出了两个列表作为示例,但实际问题包含
x1
到x10
。这本身并不能很好地扩展到10个列表的集合。问题给出了两个列表作为示例,但实际问题包含x1
到x10
。