在Python中,for x in y,如何知道我当前是第几次迭代?
我有一个关于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):
....
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。