在一个for循环中使用多个计数器:Python

25 投票
3 回答
74825 浏览
提问于 2025-04-15 21:48

在Python中,能不能像C/C++那样在一个for循环里同时使用多个计数器呢?

我想要的效果是这样的——for i,j in x,range(0,len(x)): 我知道Python会以不同的方式来理解这个,但我想知道怎么在一个for循环里同时运行两个计数器?

3 个回答

6

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在程序里使用这些数据。这个过程可能会涉及到很多步骤,比如读取文件、处理数据、然后输出结果。

有些时候,程序可能会因为一些错误而崩溃,比如文件找不到、数据格式不对等等。为了避免这些问题,我们可以使用一些方法来检查和处理这些错误,这样程序就不会因为小问题而停止运行。

总之,编程就像是在做一个复杂的拼图,我们需要小心翼翼地把每一块拼好,确保最后的结果是正确的。

for i,j in enumerate(x)
24

你可能想用一下 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 是一个通用的选项,可以在一个循环中处理多个项目。

36

你想要的是 zip,它可以把两个迭代器合并在一起,正如 @S.Mark 所说的那样。不过在这种情况下,enumerate 正好满足你的需求,这意味着你不需要直接使用 range

for j, i in enumerate(x):

注意,这里先给出了 x 的索引,所以我把 j, i 的顺序调换了。

撰写回答