在C / C ++中,是否可以在单个for循环中运行多个计数器?
我想要类似的东西 - for i,j in x,range(0,len(x)):
我知道Python解释的方式不同以及为什么,但我如何在单个for循环中同时运行两个循环计数器?
答案 0 :(得分:30)
你想要zip
,它结合了两个迭代器,正如@ S.Mark所说。但在这种情况下enumerate
完全符合您的需要,这意味着您不必直接使用range
:
for j, i in enumerate(x):
请注意,这首先给出了x
的索引,因此我推翻了j, i
。
答案 1 :(得分:19)
您可能想要使用zip
for i,j in zip(x,range(0,len(x))):
实施例,
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> print zipped
[(1, 4), (2, 5), (3, 6)]
>>> for a,b in zipped:
... print a,b
...
1 4
2 5
3 6
>>>
注意:这个问题的正确答案是enumerate
正如其他提到的那样,zip是在一个循环中包含多个项目的一般选项
答案 2 :(得分:5)
for i,j in enumerate(x)