如何将 itemgetter 与列表变量而不是整数一起使用?
例如:
from operator import itemgetter
z = ['foo', 'bar','qux','zoo']
id = [1,3]
我这样做没有问题:
In [5]: itemgetter(1,3)(z)
Out[5]: ('bar', 'zoo')
但是当我这样做时它给出了错误:
In [7]: itemgetter(id)(z)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-7-7ba47b19f282> in <module>()
----> 1 itemgetter(id)(z)
TypeError: list indices must be integers, not list
如何让 itemgetter 正确地从列表变量中获取输入,即使用
id
? 最佳答案
当你这样做时:
print itemgetter(id)(z)
您将
list
传递给 itemgetter
,而它需要索引(整数)。你能做什么? 您可以使用
list
解压 *
:print itemgetter(*id)(z)
为了更好地可视化,以下两个调用是等效的:
print itemgetter(1, 2, 3)(z)
print itemgetter(*[1, 2, 3])(z)
关于python - 如何让 itemgetter 从列表变量中获取输入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22903770/