如何制作循环:
for i, line in enumerate(lines_f1, start = 0):
从 1 (i = 1) 开始计数,并在每次迭代中递增 2?
只需使用常规枚举(0、1、2、3 等),并使用它来计算您想要的数字:
>>> lines_f1 = ['line1', 'line2', 'line3', 'line4', 'line5']
>>> for i, line in enumerate(lines_f1, start = 0):
... i = 1 + i*2
... print i, line
...
1 line1
3 line2
5 line3
7 line4
9 line5
好吧,如果你想从 1 开始,从 1 开始:
enumerate(lines_f1, start = 1)
如果你想跳过每隔一行:
import itertools
for i,l in itertools.islice(enumerate(lines_f1, start = 1),0,None,2):
pass #whatever you want here
如果您只想i
在 ieach 迭代中用两次编号,只需乘以:
for i,l in enumerate(lines_f1, start = 1):
linenum = 2*i
不确定您想要的输出是什么,但是:
lines_f1 = ["a",'b','c','d','e','f']
print range(1,len(lines_f1),2), lines_f1[1::2]
产量:
[1,3,5] ['b','d','f']
使用itertools函数来避免构建不必要的单独列表。
当您说要“增加 2”时,不清楚您是要跳过行还是仅 increment i
。如果您想跳过行,请使用 Marcin 的答案。否则,请尝试:
for i, line in itertools.izip(itertools.count(1, 2), lines_f1):