我想通过一次性生成所有迭代器,将三个 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:需要超过 2 个值才能解压
”
如果一般无法做到这一点,那么limitA == limitB == limitC
的特殊情况有解决方案吗?
最佳答案
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):
关于python - 生成元组以在一个 for 循环中迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144214/