用于比较两个字典中元素的 Python 程序
字典是 Python 中一种强大的数据类型,允许您将数据存储为键值对。在本文中,我们将讨论如何在 Python 中比较两个字典中的元素。我们将介绍比较字典元素的语法,并提供如何执行此操作的示例。
Python 中的字典
在 Python 中,可以通过将一系列元素放在花括号 { } 内并用"逗号"( , ) 分隔来创建字典。字典包含成对的值,一个是键,另一个对应的对元素是其值。
字典中的值可以是任何数据类型,并且可以重复,而键不能重复,并且必须是不可变且唯一的。字典中键的名称区分大小写。也可以通过内置函数 dict() 创建字典。只需放置两个花括号 { } 即可创建一个空字典。
我们可以用以下方式声明一个字典 -
thisdict = { "brand": "Ford", "model": "Mustang", year": 1964 }
在本文中,我们将介绍如何使用 3 种不同的方法比较 Python 中两个字典的元素。
使用相等运算符 (= = )
在此方法中,我们将使用双等号比较运算符比较两个字符串。当运算符的左侧和右侧相等时,== 运算符返回 true,当它们不相等时,它返回 false。
如果给我们的两个字典相等且彼此相同,则此运算符将返回 true,我们可以得出结论,这两个字典相等。如果它们不相等,它将返回 false。
示例
在下面的例子中,我们使用 == 运算符来比较 2 个字典
dict1 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'mango' } dict2 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'grapes'} if dict1 == dict2: print (" dict1 等于 dict2 ") else: print (" dict1 不等于 dict2 ")
输出
上述代码的输出将是 –
dict1 不等于 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 等于 dict2 ") else: print(" dict1 不等于 dict2 ")
输出
上述程序的输出如下 −
dict1 不等于 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 和 dict2 相等") else: print ("dict1 和 dict2 不相等equal")
输出
上述代码的输出如下 −
dict1 和 dict2 不相等
结论
在本文中,我们了解了 Python 中的字典,以及我们可以在哪里使用字典。我们还学习了如何比较两个给定的字典。我们遇到了 3 种比较两个字典的不同方法。
第一种方法涉及使用相等运算符(==)。第二种方法涉及使用迭代来检查两个字典的每个键值对。在最后一种方法中,我们使用 Python 的列表理解方法迭代一个字典的键值对,并检查两个字典中键的值并进行比较。
第一种方法的时间复杂度为 O (1),因为它使用了简单比较。而其他两种方法的时间复杂度为 O (n)。其中 n 是字典的长度。