📜  Python – 比较无序字典列表

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

Python – 比较无序字典列表

有时,在使用记录时,我们可能会遇到需要在记录之间进行比较的问题。这可以是字典列表类型,如果它们相等或不相等。这在许多领域都有应用。让我们讨论可以执行此任务的某些方式。

方法#1:使用"=="运算符(仅键无序)
对于只有字典的键是无序的,并且列表中的排序方式正确的情况,可以使用“==”运算符进行测试。

# Python3 code to demonstrate working of 
# Compare Unordered Dictionary List
# Using "==" operator
   
# initializing lists
test_list1 = [{'Manjeet' : 12, 'Himani' : 15}, {'Akshat' : 20, 'Vashu' : 15}]
test_list2 = [{'Himani' : 15, 'Manjeet' : 12}, {'Vashu' : 15, 'Akshat' : 20}]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Compare Unordered Dictionary List
# Using "==" operator
res = test_list1 == test_list2
  
# printing result 
print("Are Dictionary Lists equal ? : " + str(res)) 
输出 :

方法 #2:使用sorted() + key + lambda (如果是无序键和列表位置)
上述功能的组合也可以用来解决这个问题。在此,我们执行排序任务以解决列表定位,然后进行比较。

# Python3 code to demonstrate working of 
# Compare Unordered Dictionary List
# Using sorted() + key + lambda
   
# initializing lists
test_list1 = [{'Manjeet' : 12, 'Himani' : 15}, {'Akshat' : 20, 'Vashu' : 15}]
test_list2 = [{'Vashu' : 15, 'Akshat' : 20}, {'Himani' : 15, 'Manjeet' : 12}]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Compare Unordered Dictionary List
# Using sorted() + key + lambda
res = sorted(test_list1, key = lambda ele: sorted(ele.items())) == sorted(
                        test_list2, key = lambda ele: sorted(ele.items()))
  
# printing result 
print("Are Dictionary Lists equal ? : " + str(res)) 
输出 :