如何在字典中获取键的索引?

62 投票
6 回答
302436 浏览
提问于 2025-04-17 13:45

我有一个Python字典的键,想要找到这个键在字典中的对应索引。假设我有以下这个字典,

d = { 'a': 10, 'b': 20, 'c': 30}

有没有什么Python函数的组合,可以让我在给定键值'b'的情况下,得到索引值1呢?

d.??('b') 

我知道可以通过循环或者带有循环的lambda表达式来实现这个功能。只是觉得应该有更简单的方法。

6 个回答

3

你可以直接把字典发送给 list,然后你就可以选择你想要的项目的索引。

DictTest = {
    '4000':{},
    '4001':{},
    '4002':{},
    '4003':{},
    '5000':{},
}

print(list(DictTest).index('4000'))
4

在Python 3.6之前,字典是没有顺序的。你可以用一个包含元组的列表来代替字典作为数据结构。

d = { 'a': 10, 'b': 20, 'c': 30}
newd = [('a',10), ('b',20), ('c',30)]

然后可以用下面的代码来找到具有特定值的键的位置。

locations = [i for i, t in enumerate(newd) if t[0]=='b']

>>> [1]
102

使用有序字典(OrderedDict):http://docs.python.org/2/library/collections.html#collections.OrderedDict

>>> x = OrderedDict((("a", "1"), ("c", '3'), ("b", "2")))
>>> x["d"] = 4
>>> x.keys().index("d")
3
>>> x.keys().index("c")
1

对于使用Python 3的朋友们

>>> list(x.keys()).index("c")
1

撰写回答