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
。
网友评论