Python 从字典值中创建集合

Python 从字典值中创建集合

在Python中, 字典是一个数据结构 ,用于存储键-值对。字典由一组键-值对组成,每个键-值对都对应一个键和其对应的值。

在本文中,我们将学习如何在Python中将字典的值转换为集合。

使用的方法

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

  • 使用生成器表达式和{}

  • 使用values()和set()函数

  • 使用Counter()函数

示例

假设我们有一个 输入字典 。现在我们将提取字典的所有值,然后将这些值转换为一个集合。

输入

inputDict = {'hello': 5, 'tutorialspoint': 10, 'users': 15, 'python': 5}

输出

{10, 5, 15}

在上面的例子中,输入字典的值(5, 10, 15, 5)被提取出来,并转换成一个集合。在转换成集合的过程中,所有重复的值都被删除。 因此,输出结果为{10, 5, 15},在删除所有重复值之后。 使用生成器表达式和{}操作符 在这里,我们使用生成器表达式来获取所有的值,{}操作符处理删除重复项并将其转换为集合。 算法(步骤) 以下是执行所需任务的算法/步骤: 创建一个变量来存储输入字典。 打印输入字典。 遍历输入字典,并使用生成器表达式和{}将输入字典的值转换为集合。 打印将输入字典的值转换为集合后的结果集。 示例 以下程序使用生成器表达式和{}将输入字典的值转换为集合,并返回一个集合

# input dictionary
inputDict = {'hello': 5, 'tutorialspoint': 10, 'users': 15, 'python': 5}

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

# {} operator is used to convert to set
# converting the values of the input dictionary to set 
resultantSet = {inputDict[i] for i in inputDict}

# printing resultant set after converting values of input dictionary to set
print("Resultant set with values of input dictionary:", resultantSet)

输出

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

Input dictionary:
 {'hello': 5, 'tutorialspoint': 10, 'users': 15, 'python': 5}
Resultant set with values of input dictionary: {10, 5, 15}

使用values()和set()函数

在这个方法中,我们将使用Python的values()和set()函数组合来将一个字典的值转换成集合。set()函数创建一个集合对象。由于项没有顺序,一个集合列表将以随机顺序出现。它会移除所有的重复项。dict.values()函数提供了一个视图对象,按插入顺序显示字典中所有的值列表。

步骤

以下是执行所需任务的算法/步骤:

  • 使用 values() 函数获取输入字典的所有值,并使用 set() 函数将它们转换为集合。set()函数还会移除所有重复项。

  • 打印将输入字典的值转换为集合后的结果集。

示例

以下程序使用values()和set()函数将输入字典的值转换为集合,并返回一个集合:

# input dictionary
inputDict = {'hello': 5, 'tutorialspoint': 10, 'users': 15, 'python': 5}

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

# getting the values of the input dictionary and converting them into a set 
# set() function also removes all duplicates 
resultantSet = set(inputDict.values())

# printing resultant set after converting values of input dictionary to set
print("Resultant set with values of input dictionary:", resultantSet)

输出

执行上面的程序将生成以下输出 –

Input dictionary:
 {'hello': 5, 'tutorialspoint': 10, 'users': 15, 'python': 5}
Resultant set with values of input dictionary: {10, 5, 15}

使用Counter()函数

在这个方法中,我们将使用Python的Counter()函数将集合从字典值转换。这里,Counter()函数是一个计算可哈希对象的子类。当调用/调用时,它隐式地创建了一个可哈希迭代器的哈希表。Counter()函数用于获得输入字典的值的频率。

步骤

以下是执行所需任务的算法/步骤:

  • 使用import关键字从collections模块中导入Counter函数。

  • 创建一个变量来存储输入字典。

  • 打印输入字典。

  • 使用values()函数获取输入字典的值,并使用Counter()函数将这些值的频率作为键值对获取。

  • 使用keys()函数从上述值的频率中获取键,并使用list()函数将它们转换为列表(将序列/可迭代对象转换为列表)。

  • 使用set()函数将结果值列表转换为一个集合。

  • 将输入字典的值转换为集合后,打印所得到的结果集。

示例

以下程序使用Counter()函数将输入字典的值转换为集合,并返回一个集合 –

# importing Counter from collections module 
from collections import Counter

# input dictionary
inputDict = {'hello': 5, 'tutorialspoint': 10, 'users': 15, 'python': 5}

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

# getting the frequency of values of input dictionary as key-value pairs 
valuesFrequency = Counter(inputDict.values())

# getting the keys from the frequency of the above values and converting them into a list 
resultantList = list(valuesFrequency.keys())

# converting the result values list into a set 
resultantSet = set(resultantList)

# printing resultant set after converting values of input dictionary to set
print("Resultant set with values of input dictionary:", resultantSet)

输出

在执行时,上述程序将生成以下输出 –

Input dictionary:
 {'hello': 5, 'tutorialspoint': 10, 'users': 15, 'python': 5}
Resultant set with values of input dictionary: {10, 5, 15}

结论

本文教会了我们三种不同的方法来构建字典值的集合。我们学习了如何使用内置方法(如{}运算符和set()函数)将数据转换为集合。我们还学习了如何利用Counter()函数,在这种情况下,它执行与set()相同的功能,以获得可迭代对象的所有唯一值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程