2013-02-15 3 views
0

Как создать функцию для итерации моего списка таким образом. Кажется просто, но им застрял ...Итерация через вложенный список

myList= [[1,2,3], [4,5,6], [7,8,9]] 

    def name(myList): 
     somework.. 

    newList = [[1,4,7]. [ 2,5,8], [3,6,9]] 
+0

Вы запрашиваете способ переноса списка? – Floris

+0

Возможный дубликат функции [Transpose/Unzip в Python] (http://stackoverflow.com/questions/19339/a-transpose-unzip-function-in-python) – JBernardo

ответ

3
In [3]: zip(*myList) 
Out[3]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)] 

если вы специально хотите лист

In [4]: [list(x) for x in zip(*myList)] 
Out[4]: [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 

для получения более подробной информации о zip функции взгляда на this

+0

Вы можете создать функцию, действующую одинаково? – BAI

+0

@BAI - перед редактированием здесь был ненужный список-comp. С тех пор он был удален. – mgilson

2

zip является то, что вы хотите + распаковка аргументов. Это потрясающе. Мне нравится думать о нем как о встроенной транспозиции python.

newList = zip(*myList) 

Это на самом деле даст вам итератора (python3.x) или list (python2.x) из tuple, но это достаточно хорошо для большинства целей.

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