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

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

作者: FelixZzzz | 来源:发表于2021-10-19 10:03 被阅读0次

    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)
    
    # EXAMPLES
    ages = {
      "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)
    
    # EXAMPLES
    ages = {
      "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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/ejzgoltx.html