写点什么

Python 代码阅读(第 59 篇):根据 value 查询字典 key 值

作者:Felix
  • 2021 年 11 月 18 日
  • 本文字数:574 字

    阅读完需:约 2 分钟

Python代码阅读(第59篇):根据value查询字典key值

Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码


本篇阅读的代码实现了根据value查询字典key的功能。


本篇阅读的代码片段来自于30-seconds-of-python

find_keys

def find_keys(dict, val):  return list(key for key, value in dict.items() if value == val)
# EXAMPLESages = { "Peter": 10, "Isabel": 11, "Anna": 10,}print(find_keys(ages, 10)) # [ "Peter", "Anna" ]
复制代码


find_keys函数接收一个字典和一个val值,返回一个键值列表。


函数在生成器表达式中,使用items()获取字典的k-v值对,当value值和输入相等时,获取key的值。最后再用list()将生成器转化成一个列表。

find_key

def find_key(dict, val):  return next(key for key, value in dict.items() if value == val)
# EXAMPLESages = { "Peter": 10, "Isabel": 11, "Anna": 9,}print(find_key(ages, 11)) # "Isabel"
复制代码


find_key函数接收一个字典和一个val值,返回第一个value值相同的key值。


find_keys类似,使用生成器表达式获取指定value的键值。不同的是,生成器外面使用next()函数获取生成器的下一个取值。在本函数中next()只调用一次,因此会获取第一符合要求的key值。


next(iterator[, default])函数通过调用iterator__next__()方法获取下一个元素。如果迭代器耗尽,则返回给定的default,如果没有默认值则触发StopIteration

发布于: 6 小时前阅读数: 4
用户头像

Felix

关注

没有看点,仅仅闲聊。欢迎关注“没看点” 2018.05.04 加入

欢迎关注个人公众号:没看点 个人主页:www.zhangfelix.com

评论

发布
暂无评论
Python代码阅读(第59篇):根据value查询字典key值