Python For循环将所有数字附加到变量

Python For循环将所有数字附加到变量,python,for-loop,Python,For Loop,我编写了一些代码来打开一个文本文件,获取所需的列并将其分配给一个变量。for循环之前的一切正常。现在在循环中,我想将g中的所有数字作为一个双倍列表,但一直以来我只有lis1的最后一个数字 提前谢谢 代码: import numpy as N import math as M with open('File.txt',"r") as f: lis1 = [float(line.split()[4]) for line in f] f.seek(0) lis2 = [flo

我编写了一些代码来打开一个文本文件,获取所需的列并将其分配给一个变量。
for
循环之前的一切正常。现在在循环中,我想将
g
中的所有数字作为一个双倍列表,但一直以来我只有
lis1
的最后一个数字

提前谢谢

代码:

import numpy as N
import math as M

with open('File.txt',"r") as f:
    lis1 = [float(line.split()[4]) for line in f]
    f.seek(0)
    lis2 = [float(line.split()[6]) for line in f]
    f.seek(0)
    lis3 = [float(line.split()[8]) for line in f]
    f.seek(0)
    lis4 = [float(line.split()[10]) for line in f]
    f.seek(0)
    lis5 = [float(line.split()[12]) for line in f]
    f.seek(0)
    lis6 = [float(line.split()[14]) for line in f]
    i= 0
    j = i+1

    for t in (lis1):
        g = ((lis1[i:j]))                                   
        k = ((lis2[i:j]))                                          
        kl = ((lis3[i:j]))                                    
        kk = ((lis4[i:j]))
        kk2 = ((lis5[i:j]))
        kk3 = ((lis6[i:j]))
        i = i+1
        j = j+1

您的问题是,在循环的每次运行中分配
g=lis1[i:j]
,这将使
g
lis1[i:j]
在循环中的值结束(该值将仅是
lis1
的最后一个元素)

如果希望
g
包含
lis1
的所有元素,只需复制
lis1

import numpy as N
import math as M

with open('File.txt',"r") as f:
    lis1 = [float(line.split()[4]) for line in f]
    f.seek(0)
    lis2 = [float(line.split()[6]) for line in f]
    f.seek(0)
    lis3 = [float(line.split()[8]) for line in f]
    f.seek(0)
    lis4 = [float(line.split()[10]) for line in f]
    f.seek(0)
    lis5 = [float(line.split()[12]) for line in f]
    f.seek(0)
    lis6 = [float(line.split()[14]) for line in f]

    g = []

    for t in (lis1):
        g.append(t)                          

但是,人们当然会想知道,为什么要从一开始就这样做(在
lis1
中已经有了这样的功能)-可以通过直接复制为
g=lis1[:]
甚至
g=lis1

来实现这一点。问题是g在每次迭代中都会更新

最后,如果t循环10的
,你应该有g=((列表1[10:11]))


我们必须从最后一个索引获取到..,这将返回最后一个元素。

有趣的是,您有最后一个元素。根据您的代码,它应该是第一个。是否更新for循环中的i,j值?@zetysz是。我更新它们。如果我打印g(例如),它会显示所有的变量,但只将最后一个数字分配给g。不清楚您在这里试图做什么。在循环的每次迭代中,您都会覆盖变量。这就是为什么只保留最后一个。你想实现什么?我真的很抱歉,但我不明白,你对复制lis1意味着什么?让
g
包含与
lis1
相同的元素/数字。但这里只有一小部分。我想学习它,以便以后在程序的其他部分中使用。我想我不能对所有程序都使用这种方法。@kian你到底想做什么?我想在列表中显示for循环的结果(即浮点数)。然后我可以用这个代码取出任何元素:
g[m:n]
。也许我不明白。这个代码和我的代码有什么不同?我试图解释错误。为了得到所有元素,请使用例如g.append(list[I:j])。
list1=[0,1,2,3,4,5,6,7,8,9]
i=0  
j=i+1  
for t in list1:  
    g=((list1[i:j]))  
    i+=1  
    j+=1  
...
g = (([9]))