如何在字典中获取键的索引?
我有一个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