当我们使用 Python 字典时,经常用到根据特定标准提取键值对子集的操作。在本文中,将介绍从 Python 字典中提取键值对子集的不同方法。
用字典推导式提取键值对的子集用字典推导式提取键值对的子集是最简洁、最优雅的方法之一。此方法允许通过迭代原始字典并应用条件来筛选出所需的键值对来创建新字典。
dict1 = {'语文': 85, '数学': 93, '英语': 97}dict2 = {key: value for key, value in dict1.items() if value > 90}print(dict2) # 输出:{'数学': 93, '英语': 97}使用 filter 函数提取键值对的子集将 filter() 函数与 lambda 函数一起使用,并返回一个迭代器,其中包含符合条件的元素。
dict1 = {'语文': 85, '数学': 93, '英语': 97}dict2 = dict(filter(lambda item: item[1] > 90, dict1.items()))print(dict2) # 输出:{'数学': 93, '英语': 97}使用循环提取键值对的子集传统的方法,可以使用循环迭代字典的键值对,并根据条件提取所需的键值对。
dict1 = {'语文': 85, '数学': 93, '英语': 97}dict2 = {}for key, value in dict1.items(): if value > 90: dict2[key] = valueprint(dict2) # 输出:{'数学': 93, '英语': 97}提取指定键的字典子集使用列表指定要提取的键,从字典中提取子集。可以迭代列表并从字典中检索相应的值。
def subset(dic, keys): subset = {} for key in keys: if key in dic: subset[key] = dic[key] return subsetdict1 = {'语文': 85, '数学': 93, '英语': 97}keys = ['语文', '数学']dict2 = subset(dict1, keys)print(dict2) # 输出:{'语文': 85, '数学': 93}