[英]How to access the specific locations of an integer list in Python?
我有一个整数列表,应该用作另一个列表的索引来检索值。 让我们说我们有以下数组
a = [1,2,3,4,5,6,7,8,9]
我们可以使用以下代码获取特定元素
import operator
operator.itemgetter(1,2,3)(a)
它将返回第2,第3和第4项。
让我们说我有另一个清单
b=[1,2,3]
但是,如果我尝试运行以下代码,则会出错
operator.itemgetter(b)(a)
我想知道是否有人可以帮助我。 我认为这只是我必须将b转换为逗号分隔索引的问题但不是很确定。
非常感谢
采用 *:
operator.itemgetter(*b)(a)
函数调用中的*表示解压该值,并使用其元素作为函数的参数。
既然你已经用numpy标签标记了你的问题,你也可以考虑制作一个数组,这样就可以了:
from numpy import array
a = array([1,2,3,4,5,6,7,8,9])
b = [1,2,3]
a[b]
itemgetter的第一个参数需要是一个元组。 你可以这样做:
apply(operator.itemgetter, tuple(b))(a)
可能有一种更干净/更具风格的方法,但这对您的示例有效。
你也可以尝试:
map(a.__getitem__, b)
代码返回Python 2中的列表或Python 3中的迭代器。如果需要将其转换为元组,只需将其放在tuple()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.