是否可以在Python中的一个语句中连接列表索引?

时间:2013-08-10 21:08:43

标签: python list list-comprehension

我有一个类似于

的列表
alist = [a, b, c, d, e]

我希望将它传递给看起来像

的函数
def callme(a, b, e):
    pass

所以,我想做一些像

这样的事情
callme(*alist[0,1,4])

是否有一个可实现此目的的衬垫?

修改

我也可以这样做,我猜(编辑不要这样做,drewk用更好的枚举方法回答。)

callme(*[a for a in alist if alist.index(a) in [0,1,4]])

2 个答案:

答案 0 :(得分:5)

使用operator.itemgetter

from operator import itemgetter
callme(*itemgetter(0, 1, 4)(alist))

答案 1 :(得分:2)

你也可以这样做:

>>> alist = ['a', 'b', 'c', 'd', 'e']
>>> [a for i,a in enumerate(alist) if i in (0,1,4)]
['a', 'b', 'e']