簡體   English   中英

如何訪問另一個列表中每個列表的第n個元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM