2014-11-16 3 views
0

Я новичок в python. У меня есть список, как показано ниже.Как добавить значение в список?

1 [2,3,4] 10  
2 [3,4]  20  
3 [4]  30 

Тогда, я хочу, чтобы сделать второй столбец выше элементов становится первой колонке ниже, и вычислить 2-й столбец ниже в последнем столбце выше делится на общее количество элементов во 2-м столбце, как показано ниже.

2 10/3  
3 10/3  
4 10/3  
3 20/2  
4 20/2  
4 30/1 
+0

Ваши данные не являются списком, что это на самом деле? csv со списком во 2-м столбце? –

+0

это не csv. Я сделал некоторый процесс и сделаю этот список. и теперь мне нужно получить приведенный ниже список. – Wilson

+0

Это '[1, [2, 3, 4], 10]' и т. Д.? –

ответ

1

Сначала вам нужно переформатировать свои данные в более удобный формат. Я добавлю несколько дополнительных шагов, чтобы было более понятно, как все это работает.

input_list = [] ### initializes the list you'll be using (otherwise you have no list to add to) 

row_1 = [1,[2,3,4], 10] 
row_2 = [2,[3,4], 20] 
row_3 = [3,[4], 30] 

input_list.append(row_1) 
input_list.append(row_2) 
input_list.append(row_3) 

Это приведет все данные назначаются на input_list как так,

input_list = [[1,[2,3,4], 10], [2,[3,4], 20], [3,[4], 30]] 

, которые теперь могут быть использованы для выполнения итерации, чтобы получить ответы, которые вы ищете. Вы можете, конечно, пропустить определение каждой строки как своей собственной переменной, а затем добавить все к input_list, просто определив input_list со всеми вашими данными за один шаг. Но для того, чтобы читать и понимать все, что происходит, я использовал шаг за шагом подход выше. Теперь, создав функцию с input_list в качестве параметра, вы можете создать два простых циклов (один в другой), чтобы делать то, что вам нужно,

def operation(input): 
    output = [] ### initializes your final output list variable 
    for row in input: 
     for number in row[1]: 
      column1 = row[0] 
      column2 = number 
      column3 = row[2]/len(row[1]) 
      output.append([column1, column2, column3]) 
    return output 

А потом на самом деле создать вывод, что нужно, вызовите operation функция input_list в качестве параметра,

output_list = operation(input_list) 

где output_list является вновь определенным переменным, которая будет присвоена какой-либо в operation функция возвращает (ваш выход).

Чтобы затем просмотреть список в удобном для чтения формате, запустите это также,

for row in output_list: 
    print row 

Это должно дать вам то, что вы ищете!

+0

. Ввод строки_1 должен быть [1, [2,3,4], 10], как управлять им? – Wilson

+0

Я отредактировал выше, чтобы позаботиться об этом. Следует позаботиться о добавлении номера строки в качестве первой записи каждого списка – skiman01

Смежные вопросы