Python 找到两个字典的共同键

Python 找到两个字典的共同键

字典是Python中的四种数据类型之一,不允许有重复的键。在这个问题中,我们需要创建两个字典作为用户输入,并检查是否存在相同的键。如果找到相同的键,则打印出结果。这可以通过使用Python中的各种方法实现,例如type(),items(),set()等。

让我们以一个例子来说明:

输入:

A = { ‘I’: 10, ‘II’: 20, ‘III’: 30, ‘IV’:40 }

B = { ‘II’: 40, ‘V’: 60, ‘VI’: 80, ‘I’: 90 }

输出:

{ ‘I’, ‘II’ }

说明:

上面定义了两个变量以设置字典的输入值,根据问题说明,在这两个变量中发现了键名为I和II的匹配项。

语法

以下是示例中使用的语法-

keys()

keys()是Python中的一个内置方法,用于返回字典中的键。

items()

这是Python中的内置方法,通过包含键值对返回视图对象。

set()

set() 是Python中的一个内置方法,可以用于将多个项存储在一个变量中。

filter()

filter()方法用于根据特定条件过滤项目。简单来说,它允许用户迭代那些满足条件的元素。

lambda

这个在Python中的lambda函数被称为匿名函数。它可以在需要函数对象的地方使用。

intersection()

intersection 是 Python 中的一个内置方法,用于检查两个不同集合之间的相似性。

使用 keys() 函数

该程序使用 keys() 返回字典中的键,如果键元素相同,则返回该键。

示例

在以下示例中,通过定义名为 key_common 的函数来开始程序,该函数接受两个参数- a (从 dict_1 接收值)和 b(从 dict_2 接收值)。然后使用嵌套的 for 循环遍历每个字典,即 ab ,通过变量 i 和 j 使用内置函数 keys()。接下来,使用 if 语句检查变量 i 和 j 的相等性,找到相匹配的项,并通过打印变量 i 返回唯一的键。现在创建两个变量- dict_1dict_2 来声明字典。然后使用函数调用来获取结果。

def key_common(a,b):
      for i in a.keys():
        for j in b.keys(): 
          if i==j:
            print(i ,"is identified as the common key")
dict_1 ={'A':20,'T':30,'W':40,'S':100,'E':80}
dict_2 ={'E':200,'B':450,'S':100,'S':55,'A':20}
key_common(dict_1, dict_2)

输出

A is identified as the common key
S is identified as the common key
E is identified as the common key

使用items()函数

程序使用items()函数,该函数返回包含键值对的字典的视图对象。为了检查共同的匹配项,它将使用内置方法keys()返回字典中的唯一键。

示例

在下面的示例中,我们首先创建两个变量dict_1和dict_2,它们声明了两个包含键值的字典。对于字典的视图对象,我们将在两个变量中使用内置函数items()和运算符’&’来存储在变量result中。接下来,我们将使用字典推导式,其中变量i循环遍历结果的每个项,并将其存储在变量res中。使用运算符’&’,它通过使用内置函数keys()来检查两个键,并将其存储在变量common_keys中。最后,通过common_keys变量输出结果。

dict_1 = {"a": 1, "b":2, "c":3, "d":4}
dict_2 = {"t1": 1, "b":2, "e":5, "c":3}
# view object of common keys
result = dict_1.items() & dict_2.items() 
# In dictionary format
res = {i[0]:i[1] for i in result}  # i[0]:i[1] means each item in the list result.
common_keys = dict_1.keys() & dict_2.keys()  
print("Common Key:", common_keys)

输出

Common Key: {'b', 'c'}

在for循环中使用set()函数

set()函数用于将字典项转换为一组元组。然后使用操作符’&’执行集合交集,以找到键的公共匹配。

示例

在下面的示例中,程序比较了两个字典( dict_1dict_2 ),并打印同时存在于两个字典中的键值对。然后,for循环遍历结果集合中的元组,并使用 print() 函数显示同时存在于两个字典中的键值对。

dict_1 = {"a": 1, "b": 2, "c": 3, "d": 4}
dict_2 = {"t1": 1, "b": 2, "e": 5, "c": 3}

for (key, value) in set(dict_1.items()) & set(dict_2.items()):
    print('%s: %s is present in both dict_1 and dict_2' % (key, value))

输出

b: 2 is present in both dict_1 and dict_2
c: 3 is present in both dict_1 and dict_2

使用intersection()方法

程序使用内置函数来比较两个字典并找到共同的键。

示例

在以下示例中,首先创建两个存储键和值的字典。然后使用内置函数 set()intersection() 从变量a和b中找到共同匹配。这个过程存储在变量 k_common 中。接下来,使用for循环遍历 k_common 来排序字典中的共同键。内置函数 sorted() 根据键的缩写进行定义。继续使用print函数设置参数 keyend 来获取期望的结果。

a = {"ab": 11, "bc": 21, "cd": 13, "de": 41}
b = {"cd": 33, "ad": 14, "de": 51, "fa": 16}
k_common = set(a).intersection(b)
print("Common Key from two dictionaries:")
for key in sorted(k_common):
    print(key, end=" ")

输出

Common Key from two dictionaries:
cd de

使用filter()和lambda

该程序使用filter()函数来移除那些在字典中找不到的唯一键,并使用lambda函数来计算字典中的共同键。

示例

在以下示例中,我们首先创建两个变量a和b。然后使用内置函数filter()在变量c_keys中查找两个字典中的共同键。接下来,使用for循环迭代键,并使用内置函数sorted()接受名为c_keys的参数来生成共同键。然后使用参数键和结束打印结果。

a = {"abc": 11, "bax": 21, "cxs": 37, "qwd": 44}
b = {"ccc": 30, "qwd": 41, "bax": 75, "esf": 67}
c_keys = filter(lambda x: x in a, b)
print("Common Keys from two dictionary:\n")
for key in sorted(c_keys):
    print(key, end=" ")

输出

Common Keys from the dictionary:

bax qwd

结论

我们讨论了解决这个问题陈述的各种方法。然后学习了Python的不同内置函数,比如set(),intersection(),filter()等,以从字典中获取共同的键。这种类型的程序有助于根据搜索算法构建逻辑。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程