在循环中追加空列表

时间:2015-01-21 00:29:12

标签: python list

我想在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}}

2 个答案:

答案 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