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

Python:如何从列表b中选取列表a指定索引的元素(避免类型错误)

解决方法

嘿,这个问题我太熟悉啦!要在不能用b[a]的前提下,获取b[x]和b[y]对应的元素,有几个超简洁的方法,给你挨个唠唠:

  • 列表推导式(最直观易读)
    这应该是最顺手的写法,一行代码就能搞定:

    [b[i] for i in a]
    

    比如如果a = [2,5],运行后就会得到[b[2], b[5]],可读性拉满,新手也能一眼看懂。

  • operator.itemgetter(高效批量处理)
    要是你需要处理大量索引,或者追求性能,这个方法更合适。先导入工具,再批量取值:

    from operator import itemgetter
    result = itemgetter(*a)(b)
    # 如果需要列表类型,转一下就行
    result_list = list(result)
    

    它会返回一个元组,转成列表也很方便,性能比列表推导式略优。

  • map函数(另类简洁写法)
    还有个用map的小技巧,不过可读性稍弱一点,适合喜欢极简风格的同学:

    list(map(b.__getitem__, a))
    

    原理是把a里的每个元素作为参数传给b.__getitem__,也就是逐个索引b,最后转成列表。

顺便提一嘴为啥b[a]会报错——Python列表的索引只能是整数、切片或者布尔数组(numpy里的情况),直接传普通列表当索引是不被允许的,所以得把a里的元素逐个拿出来用~

内容的提问来源于stack exchange,提问作者Michael Anthony

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:38:58