这一定是一个非常基本的问题,请耐心等待。我有这样如何访问另一个列表中每个列表的第n个元素?
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
我要外列表中访问各列表中的第二个值作为另一个列表
[2, 5, 8, 11]
是否有这样做的一个步骤的方式列出的名单?在Matlab已经编程之前相当多,我想l[:][1]
但返回我[4, 5, 6]
这一定是一个非常基本的问题,请耐心等待。我有这样如何访问另一个列表中每个列表的第n个元素?
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
我要外列表中访问各列表中的第二个值作为另一个列表
[2, 5, 8, 11]
是否有这样做的一个步骤的方式列出的名单?在Matlab已经编程之前相当多,我想l[:][1]
但返回我[4, 5, 6]
使用列表理解:
>>> lis = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
>>> [ x[1] for x in lis]
[2, 5, 8, 11]
另一种方法使用operator.itemgetter
:
>>> from operator import itemgetter
>>> map(itemgetter(1), lis)
[2, 5, 8, 11]
>>> L = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
>>> [item[1] for item in L]
[2, 5, 8, 11]
既然你提到Matlab,我会提到做这件事的方式。这实际上可能更接近你想要什么,如果你要使用Matlab的喜欢的东西很多,最好尽早开始使用numpy的:
import numpy
a = numpy.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
>>> a[:,1]
array([ 2, 5, 8, 11])
所以,是的,有一个转换步骤numpy数组,额外的,但可能你想继续与数组,而不是使用一个列表,因为它提供了很多额外的。
打了几秒钟。好一个。 :) –