2017-02-21 17 views
0

Я создал серию циклов 'for' и теперь могу определить 3 значения в результате этого. Теперь я хочу сохранить 3 значения в списке. Это то, что я пытался до сих пор:Добавление значений в список из другого списка

output = []     # creates empty list 
k = 0 
for i in range(len(GPS[0])-1):   # for loop through 1 column of GPS .csv this is the time 
    for j in range(len(Data[0])-1):  # for loop through 1st column of Data .csv this is the time 
     if GPS[1,i] == Data[1,j]:  # if loop, so if time in GPS = time in Data 
       delta = i-j    # finds the difference between values 
       #print(i,j, delta)   # prints row in i that matches row in j, and also the difference between them 
       #print(GPS[1,i],Data[1,j]) # prints the Height from GPS and time from Data 
       output[k] = output.append(GPS[1,i], GPS[0,i], Data[1,j]) 
       k=k+1 
print(output) 

В основном я хочу выход быть список содержит 3 значения GPS[1,i], GPS[0,i] и Data[0,j]. Я пытался использовать Append, но я не могу показаться, чтобы получить в любом месте с этим, все, что я получаю список «никто»

+0

Do вы хотите добавить три элемента в список или добавить ** набор ** с тремя элементами в список? –

+0

'append()' редактирует список на месте и возвращает 'None' - поэтому, когда вы делаете' output [k] = output.append (GPS [1, i], GPS [0, i], Data [1, j ]) ', вы на самом деле устанавливаете' output [k] = None' – asongtoruin

+0

добавьте 3 элемента в список, так что в будущем я могу позвонить по отдельности –

ответ

0

Это не верно:

output[k] = output.append(GPS[1,i], GPS[0,i], Data[1,j]) 

Используйте output.extend вместо этого. Так что ваш код может выглядеть следующим образом:

output = []     # creates empty list 
k = 0 
for i in range(len(GPS[0])-1):   # for loop through 1 column of GPS .csv this is the time 
    for j in range(len(Data[0])-1):  # for loop through 1st column of Data .csv this is the time 
     if GPS[1,i] == Data[1,j]:  # if loop, so if time in GPS = time in Data 
       delta = i-j    # finds the difference between values 
       #print(i,j, delta)   # prints row in i that matches row in j, and also the difference between them 
       #print(GPS[1,i],Data[1,j]) # prints the Height from GPS and time from Data 
       output.extend([GPS[1,i], GPS[0,i], Data[1,j]]) 
       k=k+1 
print(output) 

Кроме того, если вы хотите добавить кортеж на выходе вы могли бы сделать output.append([GPS[1,i], GPS[0,i], Data[1,j]]) вместо этого.

Расширение будет добавлять элементы в список самого

>>> output = [] 
>>> output.extend([1,2,3]) 
>>> output 
[1, 2, 3] 

Append будет сделать новый список и добавить новый список в список

>>> output = [] 
>>> output.append([1,2,3]) 
>>> output 
[[1, 2, 3]] 
+0

довольно уверен OP хочет добавить список или кортеж как элемент в список список. –

+0

Отредактировано. Благодарю. – PseudoAj

0

Вам не нужно использовать output[k], как append сами добавляет их до output. Честно говоря, вам даже не нужен k, так как k просто равен длине output.

append не может принимать несколько аргументов, подобных тем, которые вы пытаетесь сделать. Если вы хотите добавить три бита данных вместе как кортеж, используйте:

output.append((GPS[1,i], GPS[0,i], Data[1,j]))

EDIT: так как вы хотите просто добавить их в список, используйте extend

output.extend([GPS[1,i], GPS[0,i], Data[1,j]])