我有一个类似于
的列表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]])
答案 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']