我有兩個列表a=[10,5,6,8]
和b=[1,3]
。我怎樣才能用後者作爲前者的下標?即我想提取a
的第二和第四個元素。Python中的列表索引
v = [16 5 9 4 2 11 7 14];
v([1 5 6]) % Extract the first, fifth, and sixth elements
>> ans =
16 2 11
我怎樣才能做到在Python一樣嗎?
我有兩個列表a=[10,5,6,8]
和b=[1,3]
。我怎樣才能用後者作爲前者的下標?即我想提取a
的第二和第四個元素。Python中的列表索引
v = [16 5 9 4 2 11 7 14];
v([1 5 6]) % Extract the first, fifth, and sixth elements
>> ans =
16 2 11
我怎樣才能做到在Python一樣嗎?
來解釋您可以使用operator.itemgetter做它:
from operator import itemgetter
a=[10,5,6,8]
b=[1,3]
res = itemgetter(*b)(a)
# (5, 8)
可以使用list comprehension像這樣:
>>> a = [10, 5, 6, 8]
>>> b = [1, 3]
>>> [a[x] for x in b]
[5, 8]
>>>
l=[1 5 6]
v = [16 5 9 4 2 11 7 14];
[v[i] for i in l]
你可以嘗試這樣的
它可以像這樣
for i in l:
print v[i]
a=[10,5,6,8]
b=[1,3]
ex = [a[i] for i in b]
print(ex) # [5, 8]
numpy
支持使用數組以及其他一些陣列和矩陣運算,以Matlab風格進行索引。考慮將其用於計算密集型任務:
In [1]: import numpy as np
In [2]: a = np.array([10,5,6,8])
In [3]: b = np.array([1,3])
In [4]: a[b]
Out[4]: array([5, 8])
雖然答案是有幫助的,numpy不是標準模塊的一部分。所以,它會下載OP詢問的功能。 – shahkalpesh
@shahkalpesh可以假設如果來自matlab,OP會或者想要或者已經安裝了numpy/scipy/pandas等等...... –
@JonClements:我沒有那種背景來承擔事情。列表理解是內置的,所以它很簡單。 – shahkalpesh
如果您來自Matlab,您是否將這些列表用於類似matlab的數組操作? – DSM
要添加註釋,數組索引從python中的0開始。 – shahkalpesh
看看http://stackoverflow.com/questions/18272160/access-multiple-elements-of-list-knowing-their-index –