Присоединение к новому списку для каждого цикла - PullRequest
0 голосов
/ 27 сентября 2018

Я запускаю цикл 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 Ответ

0 голосов
/ 27 сентября 2018

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