Python 如何在列表和字典中寻找共同的键

Python 如何在列表和字典中寻找共同的键

在本文中,我们将学习如何使用Python在列表和字典中找到共同的键。

使用的方法

以下是完成此任务的各种方法:

  • 使用’ in ‘运算符和列表推导

  • 使用 set() , intersection() 函数

  • 使用 keys() 函数和 in 运算符

  • 使用 Counter() 函数

示例

假设我们已经输入了一个字典和列表。我们将使用以上方法找到输入列表和字典的共同元素。

输入

inputDict = {"hello": 2, "all": 4, "welcome": 6, "to": 8, "tutorialspoint": 10}
inputList = ["hello", "tutorialspoint", "python"]

输出

Resultant list: ['hello', 'tutorialspoint']

在上面的示例中,’ hello ‘和’ tutorialspoint ‘是输入列表和字典键中的共同元素。因此,它们被打印出来。

方法1:使用’in’运算符和列表解析

列表解析

当你希望基于现有列表的值构建一个新列表时,列表解析提供了一种更短/简洁的语法。

Python ‘in’关键字

‘in’关键字有两种用法: - ‘in’关键字用于确定一个值是否存在于序列(列表、范围、字符串等)中。 - ‘in’关键字也用于在for循环中迭代一个序列。

步骤

下面是执行所需任务的算法/步骤: - 创建一个变量来存储输入的字典。 - 创建另一个变量来存储输入的列表。 - 遍历输入的列表,并使用列表解析来检查任何输入列表元素是否与字典的键匹配。 - 打印结果列表。

示例

以下程序使用’in’运算符和列表解析返回输入列表和字典键中的共同元素。

# input dictionary
inputDict = {"hello": 2, "all": 4, "welcome": 6, "to": 8, "tutorialspoint": 10}

# printing input dictionary
print("Input dictionary:", inputDict)

# input list
inputList = ["hello", "tutorialspoint", "python"]

# printing input list
print("Input list:", inputList)

# checking whether any input list element matches the keys of a dictionary
outputList = [e for e in inputDict if e in inputList]

# printing the resultant list
print("Resultant list:", outputList)

输出

执行上述程序后,将生成以下输出:

Input dictionary: {'hello': 2, 'all': 4, 'welcome': 6, 'to': 8, 'tutorialspoint': 10}
Input list: ['hello', 'tutorialspoint', 'python']
Resultant list: ['hello', 'tutorialspoint']

方法2:使用set()和intersection()函数

set()函数 − 创建一个集合对象。集合列表以随机顺序显示,因为其中的项没有顺序。它会移除所有重复项。

intersection()函数 − intersection()方法返回的是一个包含两个或多个集合之间相似性的集合。

这意味着返回的集合只包含同时存在于两个集合中的项,如果比较的是多个集合,则包含同时存在于所有集合中的项。

示例

以下程序使用set()和intersection()返回输入列表和字典键中的共同元素 –

# input dictionary
inputDict = {"hello": 2, "all": 4, "welcome": 6, "to": 8, "tutorialspoint": 10}

# printing input dictionary
print("Input dictionary:", inputDict)

# input list
inputList = ["hello", "tutorialspoint", "python"]

# printing input list
print("Input list:", inputList)

# Converting the input dictionary and input List to sets

# getting common elements in input list and input dictionary keys

# from these two sets using the intersection() function
outputList = set(inputList).intersection(set(inputDict))

# printing the resultant list
print("Resultant list:", outputList)

输出

执行上述程序后,将会生成以下输出结果-

Input dictionary: {'hello': 2, 'all': 4, 'welcome': 6, 'to': 8, 'tutorialspoint': 10}
Input list: ['hello', 'tutorialspoint', 'python']
Resultant list: {'hello', 'tutorialspoint'}

方法3:使用keys()函数和in运算符

keys()函数 - dict.keys()方法提供了一个视图对象,该对象按插入顺序显示字典中所有键的列表。

示例

以下程序使用keys()函数和in运算符返回输入列表和字典键中的公共元素 –

# input dictionary
inputDict = {"hello": 2, "all": 4, "welcome": 6, "to": 8, "tutorialspoint": 10}

# printing input dictionary
print("Input dictionary:", inputDict)

# input list
inputList = ["hello", "tutorialspoint", "python"]

# printing input list
print("Input list:", inputList)

# empty list for storing the common elements in the list and dictionary keys
outputList = []

# getting the list of keys of a dictionary
keysList = list(inputDict.keys())

# traversing through the keys list
for k in keysList:

   # checking whether the current key is present in the input list
   if k in inputList:

      # appending that key to the output list
      outputList.append(k)

# printing the resultant list
print("Resultant list:", outputList)

输出

Input dictionary: {'hello': 2, 'all': 4, 'welcome': 6, 'to': 8, 'tutorialspoint': 10}
Input list: ['hello', 'tutorialspoint', 'python']
Resultant list: ['hello', 'tutorialspoint']

方法4:使用Counter()函数

Counter()函数 - 一个子类,用于计算可哈希对象的频次。当调用/调用时,它隐式地创建一个可迭代对象的哈希表。

这里使用Counter()函数来获取输入列表元素的频次。

示例

以下程序使用Counter()函数返回输入列表和字典键的公共元素 –

# importing a Counter function from the collections module
from collections import Counter

# input dictionary
inputDict = {"hello": 2, "all": 4, "welcome": 6, "to": 8, "tutorialspoint": 10}

# printing input dictionary
print("Input dictionary:", inputDict)

# input list
inputList = ["hello", "tutorialspoint", "python"]

# printing input list
print("Input list:", inputList)

# getting the frequency of input list elements as a dictionary
frequency = Counter(inputList)

# empty list for storing the common elements of the list and dictionary keys
outputList = []

# getting the list of keys of a dictionary
keysList = list(inputDict.keys())

# traversing through the keys list
for k in keysList:

   # checking whether the current key is present in the input list
   if k in frequency.keys():

      # appending/adding that key to the output list
      outputList.append(k)

# printing the resultant list
print("Resultant list:", outputList)

输出

Input dictionary: {'hello': 2, 'all': 4, 'welcome': 6, 'to': 8, 'tutorialspoint': 10}
Input list: ['hello', 'tutorialspoint', 'python']
Resultant list: ['hello', 'tutorialspoint']

结论

本文中我们研究了四种不同的方法,用于显示给定列表和字典中的共同键。我们还学习了如何使用Counter()函数获取可迭代对象频率的字典。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程