Python – 保留列表元素值项
有时,在使用Python字典时,我们可能会遇到一个问题,即我们只需要保留那些键,其值是目标列表的一部分。这类问题在包括 Web 开发在内的许多领域都可能存在潜在问题。让我们讨论可以执行此任务的某些方式。
Input :
test_dict = {‘gfg’: 3}
tar_list = [3, 4, 10] (Values to retain)
Output : {‘gfg’: 3}
Input :
test_dict = {‘gfg’: 5, ‘best’: 12}
tar_list = [3, 4, 10] (Values to retain)
Output : {}
方法#1:使用字典理解
这是可以解决此问题的方法之一。在此,我们使用理解内的条件表达式执行过滤任务,仅保留那些存在列表的项目。
Python3
# Python3 code to demonstrate working of
# Retain list elements value items
# Using dictionary comprehension
# initializing dictionary
test_dict = {'gfg': 3, 'is': 2, 'best': 4, 'for': 7, 'geeks': 10}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# initializing target list
tar_list = [3, 4, 10]
# Retain list elements value items
# Using dictionary comprehension
res = {key : val for key, val in test_dict.items() if val in tar_list}
# printing result
print("The filtered dictionary : " + str(res))
Python3
# Python3 code to demonstrate working of
# Retain list elements value items
# Using filter() + lambda
# initializing dictionary
test_dict = {'gfg': 3, 'is': 2, 'best': 4, 'for': 7, 'geeks': 10}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# initializing target list
tar_list = [3, 4, 10]
# Retain list elements value items
# Using filter() + lambda
res = dict(filter(lambda sub: sub[1] in tar_list, test_dict.items()))
# printing result
print("The filtered dictionary : " + str(res))
输出 :
The original dictionary is : {'gfg': 3, 'is': 2, 'best': 4, 'for': 7, 'geeks': 10}
The filtered dictionary : {'gfg': 3, 'best': 4, 'geeks': 10}
方法 #2:使用 filter() + lambda
上述功能的组合可以用来解决这个问题。在此,我们使用过滤器执行过滤任务,使用 lambda函数提供逻辑。
Python3
# Python3 code to demonstrate working of
# Retain list elements value items
# Using filter() + lambda
# initializing dictionary
test_dict = {'gfg': 3, 'is': 2, 'best': 4, 'for': 7, 'geeks': 10}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# initializing target list
tar_list = [3, 4, 10]
# Retain list elements value items
# Using filter() + lambda
res = dict(filter(lambda sub: sub[1] in tar_list, test_dict.items()))
# printing result
print("The filtered dictionary : " + str(res))
输出 :
The original dictionary is : {'gfg': 3, 'is': 2, 'best': 4, 'for': 7, 'geeks': 10}
The filtered dictionary : {'gfg': 3, 'best': 4, 'geeks': 10}