附加到每个循环的新列表

2024-04-20 12:31:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行for循环,并在循环中运行的每个文件的列表中添加一个值。当我使用append()时,在for循环的第二次运行期间,它会将新值附加到与第一次运行循环相同的列表中。有没有一种方法可以在每次运行循环时追加并创建一个新列表?你知道吗

phaseresult_i =[]
for i in range(len(folder)):
    data = np.loadtxt(dir + folder[i])
    time = data[:,0]-2450000
    magnitude = data[:,1]
    print ('File:', folder[i],'\n','Time:',time,'\n', 'Magnitude:', magnitude)
    print(len(time), len(magnitude))
    for t in range(len(time)):
        #print(t,time[t])
        floor = math.floor((time[t]-time[0])/Period)
        phase_i = ((time[t]-time[0])/Period)-floor
        phaseresult_i.append(phase_i)
    print(len(time), len(phaseresult_i))

第二次通过环路后,时间数组的长度和相位结果数组的长度不一样。你知道吗


Tags: in列表fordatalentimerangefolder
1条回答
网友
1楼 · 发布于 2024-04-20 12:31:09

一个mcve,用于在外循环的每次迭代中创建一个新列表,然后附加到内循环中的该列表。你知道吗

x = []
for n in range(4):
    q = []
    x.append(q)
    #other stuff
    for t in range(10):
        #other stuff
        q.append(t)

>>> from pprint import pprint       
>>> pprint(x)

[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]
>>>

相关问题 更多 >