2015-07-14 3 views
-1

У меня есть список (input_m), содержащий другие списки чисел. Я хочу, чтобы добавить новый столбец (ноль) к каждому элементу списка, чтобы иметь окончательный список (output_m):Добавить новый столбец в элементы списка

input_m = [[3, 2], [5, 1], [4, 7]] 
output_m = [[3, 2, 0], [5, 1, 0], [4, 7, 0]] 

Я попытался с списковыми, но я не получаю output_m в формате Я хочу. Вот код:

def add_column(matrix): 
    res = [[item,0] for item in matrix] 
    return res 

output_m = add_column(input_m) 

output_m = [[[3, 2], 0], [[5, 1], 0], [[4, 7], 0]] 

Любая помощь? благодаря

+0

попробовать ' item.append (0) 'внутри понимания списка – Kamehameha

+0

@Kamehameha, note' append() 'не возвращает список, так что вы закончите с' [None, None, None] ' –

+1

@MartinEvans yep. '[item.append (0) для элемента в матрице]' будет возвращать '[None ...]', но значение матрицы изменилось бы на - '[[3, 2, 0], [5, 1, 0], [4, 7, 0]] ' – Kamehameha

ответ

2

В списке понимание -

res = [[item,0] for item in matrix] 

item является список, поэтому вы получаете результат, - [[[3, 2], 0], [[5, 1], 0], [[4, 7], 0]]

Try конкатенации вместо Пример -

def add_column(matrix): 
    res = [item + [0] for item in matrix] 
    return res 
+0

Спасибо, что работает отлично! – diegus

+0

Может быть, я хочу опубликовать это в другом вопросе, но как бы я перевел ваши списки в цикле? – diegus

+0

'res = [] для элемента в матрице: res.append (item + [0])'? –

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