2014-11-20 2 views
0

У меня есть список:Как сдвинуть значения в списке списков python?

list = [[1,2,3], [1,2,3], [1,2,3]] 

Как я могу получить следующий вывод:

listOutput = [[1,1,1], [2,2,2], [3,3,3]] 

Как сортировать или добавлять по индексу, поскольку значения в первом списке могут быть изменены динамически?

Спасибо!

+0

Is * shift * правильное слово для этой операции? – Wolf

ответ

5

Вы ковыляете себя, называя свою собственную переменную list, предотвращая доступ к the built-in. Если дать ему более осмысленное имя:

>>> lst = [[1, 2, 3], [1, 2, 3], [1, 2, 3]] 

, то вы можете легко транспонировать с zip, и использовать map для преобразования каждого полученного кортежа в список:

>>> map(list, zip(*lst)) 
[[1, 1, 1], [2, 2, 2], [3, 3, 3]] 

Обратите внимание, что в Python 3.x mapproduces an iterator, а не список, поэтому вам нужно будет обернуть еще один звонок (list(map(...))) или использовать список, если вам действительно нужен полный список.

+2

или 'list (map ...' for python3 –

+0

@PadraicCunningham хорошая точка, под редакцией – jonrsharpe

+0

Большое спасибо !!! –

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