我想在for循环中附加一个空列表。目前这就是我所拥有的:
iteration = 0
with open(logFile, 'r') as logfile_read:
for line in logfile_read:
line = line.rstrip()
if 'Time' in line:
iteration_time = re.findall(r'^Time\s+=\s+(.*)', line)
for t in iteration_time:
iteration = iteration +1
print iteration, iteration_time
这里,iteration_time
是一个从0.1到0.5变化的列表,增量为0.1。我得到的输出是:
1 ['0.1']
2 ['0.2']
3 ['0.3']
4 ['0.4']
5 ['0.5']
但是,我想将一个空列表分配给iteration
,例如iteration = []
,然后能够在1
内为t
的每个值增加iteration = iteration +1.
。 for循环而不是{{1}}
答案 0 :(得分:3)
您是否有任何理由不使用range()
内置功能?
>>> for t in range(5+1): print t, t/10.
0 0.0
1 0.1
2 0.2
3 0.3
4 0.4
5 0.5
我没有看到你需要形成列表。 但如果你这样做,请使用 列表理解 :
[(t, t/10.) for t in range(5+1)]
[(0, 0.0), (1, 0.1), (2, 0.2), (3, 0.3), (4, 0.4), (5, 0.5)]
实际上我们应该使用enumerate()
作为@Amit说:
for t, tval in enumerate(t/10. for t in range(5+1)): print t,tval
...
0 0.0
1 0.1
2 0.2
3 0.3
4 0.4
5 0.5
但实际上看起来你想从0.1开始,而不是0.0。所以你使用可选的第二个arg来枚举():
for t, tval in enumerate((t/10. for t in range(1,5+1)), 1): print t,tval
...
1 0.1
2 0.2
3 0.3
4 0.4
5 0.5
答案 1 :(得分:2)
使用enumerate
来避免反击:
for i, t in enumerate(iteration_time):
print i+1, t
1 0.1
2 0.2
3 0.3
4 0.4
5 0.5