本文主要是介绍Python 之字典(dict)根据 value 获取 key,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
____tz_zs
一、遍历 dict 筛选出符合的 key
# -*- coding:utf-8 -*-
"""
@author: tz_zs
"""raw_dict = {"A": "77","B": "88","C": "99","D": "88",
}key_list = list(filter(lambda k: raw_dict.get(k) == "88", raw_dict.keys()))
print(key_list) # ['B', 'D']
函数 filter 的使用详情见另一篇博客:Python 内置函数 filter、map、reduce
二、反转 dict 的 key 和 value
对于一些 key 和 value 一一映射的 dict,我们可以通过反转键值对,从而方便的通过 value 查找 key。
# -*- coding:utf-8 -*-
"""
@author: tz_zs
"""raw_dict = {"2019-03-29": "H19","2019-06-28": "M19","2019-09-27": "U19","2019-12-27": "Z19",
}
# 方法一
new_dict1 = dict(zip(raw_dict.values(), raw_dict.keys()))
print(new_dict1)
"""
{'H19': '2019-03-29', 'M19': '2019-06-28', 'U19': '2019-09-27', 'Z19': '2019-12-27'}
"""
# 方法二
new_dict2 = {v: k for k, v in raw_dict.items()}
print(new_dict2)
"""
{'H19': '2019-03-29', 'M19': '2019-06-28', 'U19': '2019-09-27', 'Z19': '2019-12-27'}
"""
三、关于 dict.keys 和 dict.values
根据官方文档说明,在迭代的过程中如果没有发生对字典的修改,那么 dict.keys 和 dict.values 这两个函数返回的 dict-view 对象总是保持对应关系。
如下两种方式等同:
pairs = zip(d.values(), d.keys())
pairs = [(v, k) for (k, v) in d.items()]
Python dictionary: are keys() and values() always the same order?
这篇关于Python 之字典(dict)根据 value 获取 key的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!