可能是重复问题:
如何尽可能高效地获取内部列表中的前几项
假设我有以下代码:
a = [ [1,2], [2,9], [3,7] ]
我想获取每个内部列表的第一个元素:
b = [1,2,3]
不需要像我现在这样进行这个 hack:
for inner in a:
b.append(inner[0])
我相信有一种一行代码可以解决它,但我不知道具体该找什么。
可能是重复问题:
如何尽可能高效地获取内部列表中的前几项
假设我有以下代码:
a = [ [1,2], [2,9], [3,7] ]
我想获取每个内部列表的第一个元素:
b = [1,2,3]
不需要像我现在这样进行这个 hack:
for inner in a:
b.append(inner[0])
我相信有一种一行代码可以解决它,但我不知道具体该找什么。
只需将您的列表推导式更改为:
b = [el[0] for el in a]
或:
from operator import itemgetter
b = map(itemgetter(0), a)
或者,如果你正在处理“正确的数组”:
import numpy as np
a = [ [1,2], [2,9], [3,7] ]
na = np.array(a)
print na[:,0]
# array([1, 2, 3])
还有 zip
:
print zip(*a)[0]
map(next, map(iter, a))
是否过于复杂了? - Jon Clementszip(*a)[0]
这个建议! - Dannid