Получить несмежные столбцы из списка списков - PullRequest
1 голос
/ 22 февраля 2012

Есть ли способ получить несмежные столбцы из списка списков в Python, используя понимание? Я имею в виду, если у нас есть список:

a = [[1,2,3],[4,5,6]]

и я хочу первый и третий столбец, т.е.

[[1,3],[4,6]]

могу ли я получить этот список с предложением, похожим на:

[row[1,3] for row in a]

??

Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012
>>> a = [[1,2,3],[4,5,6]]
>>> from operator import itemgetter
>>> map(itemgetter(0,2), a)
[(1, 3), (4, 6)]
>>> 

или в виде списка

>>> [itemgetter(0,2)(i) for i in a]
[(1, 3), (4, 6)]
1 голос
/ 22 февраля 2012

Это будет работать:

>>> a = [[1,2,3],[4,5,6]]
>>> [(x[0], x[2]) for x in a]
[(1, 3), (4, 6)]
...