Python - 从字典中的值列表中过滤奇数元素
有时,在使用Python字典时,我们可能会遇到需要从字典值列表中删除奇数元素的问题。这可以应用于许多领域,包括 Web 开发。让我们讨论可以执行此任务的某些方式。
方法#1:使用列表理解+字典理解
这是可以执行此任务的蛮力一条线。在此,我们使用字典推导重新制作新字典,其中过滤数据和值列表中的迭代是使用列表推导执行的。
# Python3 code to demonstrate working of
# Remove odd elements from value lists in dictionary
# Using list comprehension + dictionary comprehension
# initializing Dictionary
test_dict = {'gfg' : [1, 3, 4, 10], 'is' : [1, 2, 8], 'best' : [4, 3, 7]}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Remove odd elements from value lists in dictionary
# Using list comprehension + dictionary comprehension
res = {key: [idx for idx in val if idx % 2]
for key, val in test_dict.items()}
# printing result
print("The filtered values are : " + str(res))
输出 :
The original dictionary is : {‘gfg’: [1, 3, 4, 10], ‘best’: [4, 3, 7], ‘is’: [1, 2, 8]}
The filtered values are : {‘gfg’: [1, 3], ‘is’: [1], ‘best’: [3, 7]}
方法 #2:使用字典理解 + filter() + lambda
这是解决此问题的另一种方法。在此,列表推导执行的任务是使用filter() + lambda
完成的。
# Python3 code to demonstrate working of
# Remove odd elements from value lists in dictionary
# Using filter() + lambda + dictionary comprehension
# initializing Dictionary
test_dict = {'gfg' : [1, 3, 4, 10], 'is' : [1, 2, 8], 'best' : [4, 3, 7]}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Remove odd elements from value lists in dictionary
# Using filter() + lambda + dictionary comprehension
res = {key: list(filter(lambda ele: (ele % 2), val))
for key, val in test_dict.items()}
# printing result
print("The filtered values are : " + str(res))
输出 :
The original dictionary is : {‘gfg’: [1, 3, 4, 10], ‘best’: [4, 3, 7], ‘is’: [1, 2, 8]}
The filtered values are : {‘gfg’: [1, 3], ‘is’: [1], ‘best’: [3, 7]}