Python程序比较两个字典中的元素


字典是Python中一种强大的数据类型,允许你以键值对的形式存储数据。在本文中,我们将讨论如何在Python中比较两个字典中的元素。我们将介绍比较字典元素的语法,并提供一些示例。

Python中的字典

在Python中,字典可以通过将一系列元素放在花括号 { } 内来创建,元素之间用逗号 (,) 分隔。字典包含成对的值,一个值是键,另一个对应的元素是它的值。

字典中的值可以是任何数据类型,并且可以重复,而键不能重复,必须是不可变且唯一的。字典中键的名称区分大小写。字典也可以通过内置函数 `dict()` 创建。空字典可以通过只放置花括号 { } 来创建。

我们可以如下声明字典:

thisdict = { "brand": "Ford", "model": "Mustang", year": 1964 }

在本文中,我们将学习如何使用三种不同的方法在python中比较两个字典的元素。

使用等号运算符 ( == )

在这种方法中,我们将使用双等号比较运算符来比较两个字符串。当运算符的左侧和右侧相等时,== 运算符返回true;当两者不相等时,返回false。

如果给定的两个字典彼此相等且相同,则此运算符将返回true,我们可以得出结论:这两个字典相等。如果它们不相等,则返回false。

示例

在下面的示例中,我们使用 == 运算符比较两个字典

dict1 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'mango' }
dict2 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'grapes'}
if dict1 == dict2:
   print (" dict1 is equal to dict2 ")
else:
   print (" dict1 is not equal to dict2 ")

输出

上述代码的输出将是:

dict1 is not equal to dict2

使用循环比较两个字典

在这种方法中,我们将通过迭代一个字典的长度,并检查每次迭代中键值对与另一个字典中对应的键值对,从而逐一比较两个字典的元素。

我们还将检查两个字典的长度,如果它们不相等,我们可以直接得出结论:这两个字典不相等。要获取字典中对应于键的值,我们使用 `.get()` 函数,该函数给出作为参数给出的键的值。

示例

在下面的示例中,我们将。

dict1 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'mango' }
dict2 = { 'first' : 'banana' , 'second' : 'guava' , 'third' : 'grapes'}
if len (dict1) != len (dict2):
    print ("The dictionaries are not equal ")
else:
    flag=0
    for i in dict1:
        if dict1.get(i) != dict2.get(i):
            flag=1
            break
    if flag==0:
        print (" dict1 is equal to dict2 ")
    else:
        print (" dict1 is not equal to dict2 ")

输出

上述程序的输出如下:

dict1 is not equal to dict2

使用列表推导式方法

在这种方法中,我们将使用列表推导式来比较两个字典。列表推导式是编写列表、元组或字典中for循环的简短方法。在这种方法中,我们将遍历其中一个字典,并比较两个字典中相同键的值是否相同。如果相同,则字典相等;如果不相同,则不相等。

示例

下面的Python代码展示了如何使用列表推导式来比较两个给定的字典并打印结果。

dict1 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'mango' }
dict2 = { 'first' : 'banana' , 'second' : 'guava' , 'third' : 'grapes' }
ans = all ( dict2.get (key) == value for key , value in dict1.items() )
if ans == 'true':
   print ("dict1 and dict2 are equal")
else:
   print ("dict1 and dict2 are not equal")

输出

上述代码的输出如下:

dict1 and dict2 are not equal

结论

在本文中,我们了解了Python中的字典以及字典的用途。我们还学习了如何比较两个给定的字典。我们学习了三种不同的方法来比较两个字典。

第一种方法涉及使用等号运算符 (==)。第二种方法涉及使用迭代来检查两个字典的每个键值对。在最后一种方法中,我们使用Python的列表推导式方法来迭代一个字典的键值对,并检查两个字典中键的值,然后进行比较。

第一种方法的时间复杂度为 O(1),因为它使用简单的比较。而另外两种方法的时间复杂度为 O(n),其中 n 是字典的长度。

更新于:2023年2月17日

2K+ 浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.