📜  Python – 使用列表元素提取字典项

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

Python – 使用列表元素提取字典项

有时,在使用Python字典时,我们可能会遇到一个问题,即我们需要从字典中提取构成列表中所有元素的所有项目。此类问题可能发生在竞争性编程和 Web 开发等领域。让我们讨论可以执行此任务的某些方式。

方法 #1:使用 set() + 字典理解 + items()
上述功能的组合可以用来解决这个问题。在此,我们首先减少列表元素以删除重复项,使用 items() 提取字典项,并使用字典理解来构建所需字典。

Python3
# Python3 code to demonstrate working of
# Extract dictionary items with List elements
# Using set() + dictionary comprehension + items()
 
# helpr_fnc
def hlper_fnc(req_list, test_dict):
    temp = set(req_list)
    temp2 = { key: set(val) for key, val in test_dict.items() }
    return { key: val for key, val in test_dict.items() if temp2[key].issubset(temp)}
 
# initializing dictionary
test_dict = {'gfg' : [4, 6], 'is' : [10], 'best' : [4, 5, 7]}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# initializing req_list
req_list = [4, 6, 10]
 
# Extract dictionary items with List elements
# Using set() + dictionary comprehension + items()
res = hlper_fnc(req_list, test_dict)
     
# printing result
print("The extracted dictionary: " + str(res))


Python3
# Python3 code to demonstrate working of
# Extract dictionary items with List elements
# Using all() + dictionary comprehension
 
# initializing dictionary
test_dict = {'gfg' : [4, 6], 'is' : [10], 'best' : [4, 5, 7]}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# initializing req_list
req_list = [4, 6, 10]
 
# Extract dictionary items with List elements
# Using all() + dictionary comprehension
res = {key: val for key, val in test_dict.items() if all(vals in req_list for vals in val)}
     
# printing result
print("The extracted dictionary: " + str(res))


输出 :

原字典:{'is': [10], 'best': [4, 5, 7], 'gfg': [4, 6]}
提取的字典:{'is': [10], 'gfg': [4, 6]}


方法 #2:使用 all() + 字典理解
上述功能的组合可以用来解决这个问题。这是单线解决方案,使用 all() 检查元素成员资格以决定过滤。词典理解执行构建词典的任务。

Python3

# Python3 code to demonstrate working of
# Extract dictionary items with List elements
# Using all() + dictionary comprehension
 
# initializing dictionary
test_dict = {'gfg' : [4, 6], 'is' : [10], 'best' : [4, 5, 7]}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# initializing req_list
req_list = [4, 6, 10]
 
# Extract dictionary items with List elements
# Using all() + dictionary comprehension
res = {key: val for key, val in test_dict.items() if all(vals in req_list for vals in val)}
     
# printing result
print("The extracted dictionary: " + str(res))
输出 :
The original dictionary : {'is': [10], 'best': [4, 5, 7], 'gfg': [4, 6]}
The extracted dictionary: {'is': [10], 'gfg': [4, 6]}