Python itertools.product with arbitrary number of sets

筅森魡賤 提交于 2019-12-01 07:34:38

问题


I wish to execute the following code:

temp = []
temp.append([1,2])
temp.append([3,4])
temp.append([5,6])

print list(itertools.product(temp[0],temp[1],temp[2]))

However, I would like to execute it for temp with arbitrary length. I.e. something more like:

print list(itertools.product(temp))

How do I format the input correctly for itertools.product to produce the same result in the first segment of code without explicitly knowing how many entries there are in temp?


回答1:


print list(itertools.product(*temp))

Use * to unpack the argument iterable as separate positional arguments.




回答2:


Or can do that:

Combine lists using zip. The result is a list itertator.

a = ["A", "a"]
b = ["B", "b"]
c = ["C", "c"]

number_iterator = zip(a,b,c)
numbers = list(number_iterator)

print (numbers)


来源:https://stackoverflow.com/questions/18341816/python-itertools-product-with-arbitrary-number-of-sets

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!