有没有办法从python中使用理解从列表列表中获取非连续列?我的意思是,如果我们有一个清单:
a = [[1,2,3],[4,5,6]]
我想要第一和第三列,即:
[[1,3],[4,6]]
我可以使用类似于:
的句子获取该列表[row[1,3] for row in a]
...
感谢您的帮助!
答案 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)]