繁体   English   中英

如何在Python中访问整数列表的特定位置?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM