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]))