📜  Python – 保留列表元素值项

📅  最后修改于: 2022-05-13 01:54:43.254000             🧑  作者: Mango

Python – 保留列表元素值项

有时,在使用Python字典时,我们可能会遇到一个问题,即我们只需要保留那些键,其值是目标列表的一部分。这类问题在包括 Web 开发在内的许多领域都可能存在潜在问题。让我们讨论可以执行此任务的某些方式。

方法#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}