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

如何从多维Python列表中获取每个子列表的指定元素?无需循环实现

问题解答

给定列表 lst = [ ['a', 1], ['b', 2] ],要提取出 [1, 2],你试过的 lst[0:2][1] 之所以不行,是因为 lst[0:2] 取的是原列表的前两个元素(也就是整个原列表),再索引 [1] 只会拿到第二个子列表 ['b', 2],自然得不到目标结果。

不用任何显式循环的话,有几种方法可以实现:

  • 用 map 配合匿名函数:

    list(map(lambda x: x[1], lst))
    

    map 会把每个子列表传入 lambda 函数,取出索引为1的元素,最后转成列表即可。

  • 用 zip 解包:

    list(zip(*lst))[1]
    

    *lst 会把原列表的子列表作为单独参数传给 zip,zip 会将每个子列表的对应位置元素打包成元组,得到 ('a', 'b'), (1, 2),取第二个元组转成列表就是目标结果。

  • 用 operator.itemgetter:
    先导入模块,再通过 itemgetter 指定要提取的索引:

    from operator import itemgetter
    list(map(itemgetter(1), lst))
    

    这个和第一种方法原理类似,只是用内置的itemgetter替代了匿名函数,效率会稍高一点。

内容的提问来源于stack exchange,提问作者just in

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:30:54