Python 在循环某些输入数据之后,循环并编辑列表中的项目

Python 在循环某些输入数据之后,循环并编辑列表中的项目,python,Python,为什么我只能得到[-1.0,0.0,1.0,2.0,3.0],而不是 [0.0,1.0,2.0,3.0,4.0] [-2.0,-1.0,0.0,1.0,2.0] [-1.0,0.0,1.0,2.0,3.0],谢谢 V = [1,2,3,4,5] f = open('Qin.txt') # values in Qin.txt: 1 for line in iter(f): 3 Z = float(lin

为什么我只能得到[-1.0,0.0,1.0,2.0,3.0],而不是 [0.0,1.0,2.0,3.0,4.0] [-2.0,-1.0,0.0,1.0,2.0] [-1.0,0.0,1.0,2.0,3.0],谢谢

V = [1,2,3,4,5]
f = open('Qin.txt')             # values in Qin.txt: 1
    for line in iter(f):                             3
    Z = float(line)                                  2

    c = []
    for i in range(len(V)):
    c.append(V[i]-Z)

    print c

当你发帖时,有些事情搞砸了

我猜你有这个:

V = [1,2,3,4,5]
f = open('Qin.txt')             # values in Qin.txt: 1
for line in iter(f):                                 3
    Z = float(line)                                  2

    c = []
    for i in range(len(V)):
        c.append(V[i]-Z)

print c
因此,外部循环完成后,
print c
只调用一次

当您希望在每个内部循环完成后打印c时:

V = [1,2,3,4,5]
f = open('Qin.txt')             # values in Qin.txt: 1
for line in iter(f):                                 3
    Z = float(line)                                  2

    c = []
    for i in range(len(V)):
        c.append(V[i]-Z)

    print c

我不确定这段代码的上下文,但是您可以通过删除
iter()
(文件对象已经是iterable)和
范围(len(V))
来简化代码片段:

通过使用列表理解构建列表
c
,并直接打印,可以进一步减少这种情况:

f = open('Qin.txt')
for line in f:
    Z = float(line)
    print [i-Z for i in range(1, 6)]
f = open('Qin.txt')
for line in f:
    Z = float(line)
    print [i-Z for i in range(1, 6)]