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()函数执行相同的函数,以从可迭代对象中获取所有唯一值。

更新于:2023年8月18日

浏览量:910

启动您的职业生涯

完成课程获得认证

开始学习
广告