python - 访问列表的多个元素知道它们的索引

标签 python python-3.x list indexing element

我需要从给定列表中选择一些元素,知道它们的索引。假设我想创建一个新列表,其中包含来自给定列表 [-2, 1, 5, 3, 8, 5, 6] 的索引为 1、2、5 的元素。我所做的是:

a = [-2,1,5,3,8,5,6]
b = [1,2,5]
c = [ a[i] for i in b]

有没有更好的方法呢?类似 c = a[b] 的东西?

最佳答案

您可以使用 operator.itemgetter :

from operator import itemgetter 
a = [-2, 1, 5, 3, 8, 5, 6]
b = [1, 2, 5]
print(itemgetter(*b)(a))
# Result:
(1, 5, 5)

或者您可以使用 numpy :

import numpy as np
a = np.array([-2, 1, 5, 3, 8, 5, 6])
b = [1, 2, 5]
print(list(a[b]))
# Result:
[1, 5, 5]

但实际上,您当前的解决方案很好。它可能是所有这些中最整洁的。

关于python - 访问列表的多个元素知道它们的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18272160/

相关文章:

Python decimal.InvalidOperation 错误

python - 如果特定属性匹配,则查找并提取 xml 标签的名称

java - 如何从基于自定义 java 对象而不是原始类型的列表中删除重复项?

Python:追加行后列表不正确

python - 将 ssh 隧道命令转换为 SSHTunnelForwarder 代码?

python - 重新打开窗口抛出 Gtk-CRITICAL ** : gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

python - OAuth 和 YouTube API

python - Yocto 食谱 python whl 包

python - 在 Pycharm 中找不到 Openpyxl

r - 在列表中查找重复项,包括排列