我需要通过给定尺寸生成所有点坐标,例如:
>>>points(2,2)
>>>[(0,0),(0,1),(1,0),(1,1)]
>>>points(1,1,1)
>>>[(0,0,0),(0,0,1),(0,1,0),(0,1,1),(1,1,0),(1,1,1)]
我见过solution表示二维,但是找不到一种使方法与维数无关的方法:
>>> from itertools import product
>>> list(product(xrange(d) for d in (1,2,3)))
[(xrange(1),), (xrange(2),), (xrange(3),)] #where is my tuples?
其中(1,2,3)是* args元组,可以是任何值。
最佳答案
调用函数以将可迭代对象用作参数列表时,需要使用*。
f(* [1,2,3])
像
f(1,2,3)。
知道这一点并使用itertools:
def points(*args):
return list(product(*[range(n) for n in args]))
关于python - python坐标生成器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15325745/