[英]How to access the nth element of every list inside another list?
這必須是一個非常基本的問題,所以請耐心等待。 我有一個這樣的清單清單
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]
自從您提到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數組轉換為多余的數組,但是您可能希望繼續使用數組而不是使用列表,因為它提供了很多額外的功能。
>>> L = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
>>> [item[1] for item in L]
[2, 5, 8, 11]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.