2

我有一个看起来像的列表

alist = [a, b, c, d, e]

我想将它传递给一个看起来像的函数

def callme(a, b, e):
    pass

所以,我想做类似的事情

callme(*alist[0,1,4])

是否有一个班轮可以实现这一目标?

编辑

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

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

2 回答 2

5

使用operator.itemgetter

from operator import itemgetter
callme(*itemgetter(0, 1, 4)(alist))
于 2013-08-10T21:12:43.597 回答
2

你也可以这样做:

>>> alist = ['a', 'b', 'c', 'd', 'e']
>>> [a for i,a in enumerate(alist) if i in (0,1,4)]
['a', 'b', 'e']
于 2013-08-10T21:23:16.827 回答