说我有一个清单l:
['a','b','c','d','e']
Run Code Online (Sandbox Code Playgroud)
和索引列表idx:
[1,3]
Run Code Online (Sandbox Code Playgroud)
什么是最简单,最有效的函数:
['b','d']
Run Code Online (Sandbox Code Playgroud)
ars*_*jii 13
试试这个:
[l[i] for i in idx]
Run Code Online (Sandbox Code Playgroud)
你想要的operator.itemgetter.
在我的第一个示例中,我将展示如何使用itemgetter构造可在任何可索引对象上使用的可调用对象:
from operator import itemgetter
items = itemgetter(1,3)
items(yourlist) #('b', 'd')
Run Code Online (Sandbox Code Playgroud)
现在我将展示如何使用参数解包将索引存储为列表
from operator import itemgetter
a = ['a','b','c','d','e']
idx = [1,3]
items = itemgetter(*idx)
print items(a) #('b', 'd')
Run Code Online (Sandbox Code Playgroud)
当然,这给你一个tuple,而不是一个list,但如果你真的需要,从一个元组构造一个列表是微不足道的.