📜  Python - 从字典中的值列表中过滤奇数元素

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

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)) 
输出 :

方法 #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)) 
输出 :