2011-08-10 190 views
2

我有索引列表,像這樣:越來越元素

b=[0,2] 

和元素的列表:

a = ['elem0','elem1','elem2'] 

我需要一個列表在a與指數是由元素在b
(在這個例子中:['elem0','elem2']

回答

8

使用一個list comprehension

[a[i] for i in b] 
+1

有點丟人不是自己搞清楚了這一點... – Boaz

0

使用列表理解的指標映射到列表:

b=[0,2] 
a = ['elem0','elem1','elem2'] 

sublist = [a[i] for i in b] 
0
>ipython 
In [1]: b=[0,2] 
In [2]: a = ['elem0','elem1','elem2'] 
In [3]: [a[i] for i in b] 
Out[3]: ['elem0', 'elem2'] 

查找「列表理解」在Python手冊,如果你不認識他們。

1

或者:

from operator import itemgetter 

b=[0,2] 
a = ['elem0','elem1','elem2'] 

print itemgetter(*b)(a) 
>>> ('elem0','elem2')