You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何获取与指定元素索引列表关联的另一列表元素?

嘿,既然你已经成功获取到了列表A中元素2的所有索引,那提取列表B对应位置的元素其实有两种非常简洁高效的方法,一起来看看:

方法1:列表推导式(最直观的Pythonic写法)

这是Python处理这类需求最常用的方式,代码简洁易懂,完全贴合你的需求:

# 你已经得到的索引列表
idxs = [2, 3, 4, 5]
# 目标列表B
B = [1, 4, 2, 4, 3, 1, 2, 3, 2]

# 提取对应索引的元素
C = [B[i] for i in idxs]
print(C)  # 输出结果: [2, 4, 3, 1]

这种写法本质就是遍历索引列表里的每一个值,取出列表B对应位置的元素,逻辑清晰,对于大多数日常场景来说效率完全足够。

方法2:使用operator.itemgetter(大数据量下更高效)

如果你的索引列表特别长,或者需要频繁执行这类提取操作,operator.itemgetter会是更好的选择——它基于底层C实现,比纯Python循环的列表推导式速度更快:

from operator import itemgetter

idxs = [2, 3, 4, 5]
B = [1, 4, 2, 4, 3, 1, 2, 3, 2]

# 一次性获取所有指定索引的元素
C = list(itemgetter(*idxs)(B))
print(C)  # 输出结果: [2, 4, 3, 1]

这里itemgetter(*idxs)会生成一个专门的取值函数,传入列表B后,它会一次性取出所有目标索引的元素并返回元组,最后转成列表就得到了你想要的结果。

这两种方法都能完美解决你的问题,你可以根据实际的场景复杂度来选择~

内容的提问来源于stack exchange,提问作者Stefano Fedele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 06:52:59