1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python 之字典(dict)根据 value 获取 key

Python 之字典(dict)根据 value 获取 key

时间:2018-11-02 17:49:27

相关推荐

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 = {"-03-29": "H19","-06-28": "M19","-09-27": "U19","-12-27": "Z19",}# 方法一new_dict1 = dict(zip(raw_dict.values(), raw_dict.keys()))print(new_dict1)"""{'H19': '-03-29', 'M19': '-06-28', 'U19': '-09-27', 'Z19': '-12-27'}"""# 方法二new_dict2 = {v: k for k, v in raw_dict.items()}print(new_dict2)"""{'H19': '-03-29', 'M19': '-06-28', 'U19': '-09-27', 'Z19': '-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?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。