在python中索引嵌套列表

aia*_*iao 5 python list multidimensional-array python-2.7

给定data

data = [ [0, 1], [2,3] ]
Run Code Online (Sandbox Code Playgroud)

我想索引列表列表中列表中的所有第一个元素。即我需要索引02

我试过了

print data[:][0]
Run Code Online (Sandbox Code Playgroud)

但它输出完整的第一个列表。即

[0,1]
Run Code Online (Sandbox Code Playgroud)

甚至

print data[0][:]
Run Code Online (Sandbox Code Playgroud)

产生相同的结果。

我的问题具体是如何完成我所提到的。更一般地说,python 如何处理双重/嵌套列表?

fal*_*tru 5

使用列表理解

>>> data = [[0, 1], [2,3]]
>>> [lst[0] for lst in data]
[0, 2]
>>> [first for first, second in data]
[0, 2]
Run Code Online (Sandbox Code Playgroud)

使用map

>>> map(lambda lst: lst[0], data)
[0, 2]
Run Code Online (Sandbox Code Playgroud)

使用map具有operator.itemgetter

>>> import operator
>>> map(operator.itemgetter(0), data)
[0, 2]
Run Code Online (Sandbox Code Playgroud)

使用zip

>>> zip(*data)[0]
(0, 2)
Run Code Online (Sandbox Code Playgroud)


mgi*_*son 4

对于这类事情,我通常建议numpy

>>> data = np.array([ [0, 1], [2,3] ])
>>> data[:,0]
array([0, 2])
Run Code Online (Sandbox Code Playgroud)

至于 python 在你的情况下如何处理它:

data[:][0]
Run Code Online (Sandbox Code Playgroud)

复制整个列表,然后获取第一个元素(即第一个子列表)。

data[0][:]
Run Code Online (Sandbox Code Playgroud)

获取第一个子列表,然后复制它。