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

如何获取Python OrderedDict中键的索引位置?

获取Python OrderedDict中键的位置

当然可以实现类似列表index()的功能!不过OrderedDict本身并没有自带的index()方法,我们可以用几个简单的小技巧来搞定,下面给你具体的方案和示例:

  • 方法一:将键转为列表后使用index()
    这是最直接的方式,OrderedDict的keys()方法会返回一个保持插入顺序的视图对象,我们只需要把它转换成列表,就能用熟悉的index()方法查找键的位置了:

    from collections import OrderedDict
    
    # 创建一个示例OrderedDict
    test_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])
    # 把键转换成列表
    key_list = list(test_dict.keys())
    # 调用列表的index()方法
    print(key_list.index('b'))  # 输出:1
    
  • 方法二:封装函数处理键不存在的情况
    如果直接用列表的index(),当目标键不存在时会抛出ValueError。我们可以封装一个函数,模仿列表index()的可选default参数,让代码更健壮:

    def get_key_index(ordered_dict, target_key, default=-1):
        key_list = list(ordered_dict.keys())
        try:
            return key_list.index(target_key)
        except ValueError:
            return default
    
    # 测试存在的键
    print(get_key_index(test_dict, 'b'))  # 输出:1
    # 测试不存在的键
    print(get_key_index(test_dict, 'f'))  # 输出:-1
    

小补充:从Python 3.7开始,普通的dict也会保留插入顺序,如果你的场景不需要OrderedDict的特殊功能(比如move_to_end()、popitem(last=False)这类方法),用普通字典也可以用同样的方法获取键的位置哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:33:50