Bin*_*ary 3 python dictionary list python-3.x
我有以下字典:
d = {'1' : [1, 2, 3, 4], '2' : [10, 20, 30, 40]}
Run Code Online (Sandbox Code Playgroud)
如何通过其中一个列表中的值获取相应的密钥?假设我正在寻找值3或键'2',如果我正在寻找值10,那么我想要键'1'.
您可以将字典反转为此结构以执行此类查找:
reverse_d = {
1: '1',
2: '1',
3: '1',
4: '1',
10: '2',
…
}
Run Code Online (Sandbox Code Playgroud)
可以通过循环每个键的每个值来构建:
reverse_d = {}
for key, values in d.items():
for value in values:
reverse_d[value] = key
Run Code Online (Sandbox Code Playgroud)
或更简洁地作为词典理解:
reverse_d = {value: key for key, values in d.items() for value in values}
Run Code Online (Sandbox Code Playgroud)
查找现在很简单!
k = reverse_d[30]
# k = '2'
Run Code Online (Sandbox Code Playgroud)
但是,如果您执行多次查找,这仅提供比搜索整个原始字典更好的性能.
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |