美文网首页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