我在Blender和Python 3.x工作。
我想使用迭代值:
list(itertools.product([0,1,2,3], repeat = 3))
>>> [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 0, 3), ... (3, 3, 2), (3, 3, 3)]
(64个产品/排列总数)并将它们各自的值(一次一组)插入以下方法中:
def vid(h,j,k):
m = h
s = j
b = k
是否可以通过某种形式的循环实现这一点,以便(例如,(0,0,0)可以一次又一次地插入(h,j,k),直到所有64个产品/排列已被插入?
道歉,如果这看起来像是一堆愚蠢的问题,或者以任何方式都不清楚。刚刚开始在这个堆栈上,我宁愿坚持这个问题!
答案 0 :(得分:1)
如果要在迭代器中捕获vid
的返回值,可以使用itertools.starmap:
itertools.starmap(vid, itertools.product([0,1,2,3], repeat = 3)))
或(对于列表)您可以在迭代器上调用list
,或使用list comprehension:
[vid(*tup) for tup in itertools.product([0,1,2,3], repeat = 3)]
如果您只想为每个元组调用vid
,可以使用for-loop
:
for tup in itertools.product([0,1,2,3], repeat = 3):
vid(*tup)