Python 生成元组以在一个for循环中迭代
我想通过一次生成所有迭代器,将三个for循环减少为一个。基本上我有一本字典,它使用元组作为键。我知道我能行Python 生成元组以在一个for循环中迭代,python,iterator,tuples,Python,Iterator,Tuples,我想通过一次生成所有迭代器,将三个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)
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:需要两个以上的值才能解包”
”
如果通常无法做到这一点,那么limitA==limitB==limitC的特殊情况是否有解决方案?使用:
其中limitA==limitB==limitC
可简化为:
for aa, bb, cc in product(range(limitA), repeat=3):
使用:
其中limitA==limitB==limitC
可简化为:
for aa, bb, cc in product(range(limitA), repeat=3):
哇,太快了。我会直截了当地尝试,这个答案不仅有效,而且给了我很多关于如何嵌套其他for循环的想法,所有这些都在发布问题的30秒内完成。谢谢你,伙计!(我还不能接受你的答案,因为还不到2分钟:)哇,太快了。我会直截了当地尝试,这个答案不仅有效,而且给了我很多关于如何嵌套其他for循环的想法,所有这些都在发布问题的30秒内完成。谢谢你,伙计!(我还不能接受你的回答,因为还不到2分钟:)