从列表列表中获取不连续的列

时间:2012-02-22 11:38:54

标签: python list-comprehension

有没有办法从python中使用理解从列表列表中获取非连续列?我的意思是,如果我们有一个清单:

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

我想要第一和第三列,即:

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

我可以使用类似于:

的句子获取该列表
[row[1,3] for row in a]

...

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

>>> 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 :(得分:1)

这个工作:

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