为每个循环附加到一个新列表

Posted

技术标签:

【中文标题】为每个循环附加到一个新列表【英文标题】:Appending to a new list for every loop 【发布时间】:2019-03-03 17:05:49 【问题描述】:

我正在运行一个 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))

第二次循环后,时间数组的长度和相位结果数组的长度不一样。

【问题讨论】:

您希望外部循环在每次迭代时创建一个新列表,而内部循环附加到 那个 列表? 是的,每次外循环运行并创建一个新列表时,我希望内循环附加到该新列表。 【参考方案1】:

一个 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]]
>>>

【讨论】:

以上是关于为每个循环附加到一个新列表的主要内容,如果未能解决你的问题,请参考以下文章

添加列并附加数据框

Pandas 列表列,为每个列表附加一个新列

使用循环创建新的div,在每个新div上附加子节点

如何使用循环将带有来自 googlesearch 的链接的列表附加到另一个列表?

Python for 循环仅将最后一个列表作为值附加

如何迭代数据列的每个单元格,转换和附加每个单元格?