示例:
a = [[1,2,3],[4,5,6],[7,8,9]]
通过执行类似a[:][0]
的操作,我希望它能够在每行中为我提供第一个元素[1,4,7]
但是,我得到[1,2,3]
。我总是可以做一个功能。
def column(array,index):
result = []
for row in array:
result.append(row[index])
return result
但我想知道:有更聪明的方法吗?
答案 0 :(得分:3)
答案 1 :(得分:2)
以这种方式操作数组的事实上的标准方法是使用专用的NumPy包。
事情以你想要的方式运作,使用NumPy:
>>> import numpy
>>> a = numpy.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a[:,0]
array([1, 4, 7])
事实上,NumPy的目的是提供强大的数组操作。
答案 2 :(得分:2)
您也可以使用一行for循环,但它与您已经执行的操作相同:
a = [[1,2,3],[4,5,6],[7,8,9]]
result = [item[0] for item in a]
答案 3 :(得分:2)
使用zip()
:
>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> zip(*a)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>> zip(*a)[0]
(1, 4, 7)
但请注意,zip会构建元组,这可能需要您根据应用程序转换回列表。
答案 4 :(得分:1)
一些列表理解能够完成这项任务:
a = [[1,2,3],[4,5,6],[7,8,9]]
col = [c[0] for c in a]
不知道速度影响。