Nat*_*ume 18 python dictionary
可能重复:
反向字典查找 - 使用Python 进行字典的Python
反向映射
如何在字典中获取索引的键?
例如:
i = {'a': 0, 'b': 1, 'c': 2}
Run Code Online (Sandbox Code Playgroud)
所以,如果我想获得i [0]的关键,它将返回'a'
Mar*_*ers 18
Python词典有一个键和一个值,你要求的是键指向给定值.
你只能循环执行此操作:
[k for (k, v) in i.iteritems() if v == 0]
Run Code Online (Sandbox Code Playgroud)
请注意,dict中每个值可以有多个键; {'a': 0, 'b': 0}是完全合法的.
如果您想要订购,您需要使用列表或OrderedDict实例:
items = ['a', 'b', 'c']
items.index('a') # gives 0
items[0] # gives 'a'
Run Code Online (Sandbox Code Playgroud)
mgi*_*son 18
你可以这样做:
i={'foo':'bar', 'baz':'huh?'}
keys=i.keys() #in python 3, you'll need `list(i.keys())`
values=i.values()
print keys[values.index("bar")] #'foo'
Run Code Online (Sandbox Code Playgroud)
但是,每次更改字典时,都需要更新键,值,因为字典不是订购的.无论何时插入新的键/值对,您认为自己的订单都会消失,并被新的(或多或少随机)订单所取代.因此,在字典中索引索引没有意义.
另请注意,您所问的可能不是您真正想要的.无法保证字典中的逆映射是唯一的.换句话说,您可以拥有以下字典:
d={'i':1, 'j':1}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,不可能知道你是否想要i或j实际上没有答案可以告诉你哪个('i'或'j')将被选中(再次,因为字典是无序的).在那种情况下你想要发生什么?你可以得到一个可接受的密钥列表...但我猜你对字典的基本理解是不对的.
根据定义,字典是无序的,因此无法编入索引.对于这种功能,请使用有序字典.Python有序字典
| 归档时间: |
|
| 查看次数: |
122570 次 |
| 最近记录: |