0

假设我们有:

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

除了循环之外,访问数组以获取每个列表中的第一个元素的最快方法是什么。

我希望结果能给我... 1,4

4

4 回答 4

2

使用 zip(*a)

a = [[1, 2, 3], [2, 3, 4]]
result = zip(*a)[0]
print result
于 2013-01-11T02:30:08.970 回答
2

一种快速简便的方法是仅提取a[0][0]and a[1][0],但取决于您使用它的目的,这可能不会一直有效。

于 2013-01-11T02:32:21.403 回答
2

如果没有循环,您需要像 ethg242 那样展开循环。这具有仅适用于固定长度的缺点a

这是一个列表理解

[i[0] for i in a]

也可以使用map(),但这也有一个隐式循环

from operator import itemgetter
map(itemgetter(0), a)
于 2013-01-11T02:36:08.340 回答
2

您可能需要考虑 numpy:

>>> import numpy as np
>>> a = [[1, 2, 3], [4, 5, 6]]
>>> b = np.array(a)
>>> b[:,0]
array([1, 4])
于 2013-01-11T02:52:29.773 回答