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()相同的功能,以获得可迭代对象的所有唯一值。