我想通过一次生成所有迭代器将三个for循环减少为一个。基本上我有一个使用元组作为键的字典。我知道我可以做到
for aa in range(limitA):
for bb in range(limitB):
for cc in range(limitC):
do_stuff(my_dict[(aa,bb,cc)])
但有没有一种方法需要更少的代码行?像
这样的东西for aa,bb,cc in range(limitA), range(limitB), range(limitC):
do_stuff(my_dict[(aa,bb,cc)])
这会返回错误“ValueError: need more than 2 values to unpack
”
如果一般无法做到这一点,limitA == limitB == limitC
的特殊情况是否有解决方案?
答案 0 :(得分:4)
from itertools import product
for aa, bb, cc in product(range(limitA), range(limitB), range(limitC)):
limitA == limitB == limitC
这可以简化为:
for aa, bb, cc in product(range(limitA), repeat=3):