在Python中,for x in y,如何知道我当前是第几次迭代?

8 投票
4 回答
23154 浏览
提问于 2025-04-15 23:04

我有一个关于Python中循环结构的问题,形式是:for x in y: 在我的例子中,y是从文件中读取的一行,而x是分开的字符。我想在输出的每对字符后面加一个空格,比如这样:aa bb cc dd等等。所以,我想知道当前的循环次数。这样做可以吗?还是说我需要用更传统的C语言风格的循环,带上索引?

4 个回答

0

如果你想在每对字符后面插入一个空格,你可以试试用列表推导式来实现,像这样:

' '.join([''.join(characterPair) for characterPair in zip(*[iter(line + ' ')] * 2)])

如果不加上这个额外的空格,字符数为奇数的行的最后一个字符会被丢掉;而加上空格后,字符数为奇数的行最后会多出一个空格。

(可能还有比我这样做更符合Python风格的方法。)

3

使用 enumerate

for index,x in enumerate(y):
    # do stuff, on iteration #index

另外,你也可以创建一个变量,然后在循环里面让它加一。不过这样写就没有那么“符合Python风格”了。

cur = 0
for x in y:
    cur += 1
    # do stuff, on iteration #cur
23
for i,x in enumerate(y):
    ....

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答