如何在 Python 中创建一个集合的字典
在这篇文章中,我们将学习如何在 Python 中创建一个集合的字典。
使用的方法
下面是用于完成这项任务的各种方法
- 使用 Naive 方法
-
使用defaultdict()方法
-
使用 setdefault() 方法
方法1:使用Naive方法
在这个方法中,我们通过将集合作为值传递给键来创建一个集合的字典。
语法
{ ‘Key’: Set 1, ‘Key’:Set 2,…………..,’Key’: Set n}
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 创建一个变量来存储包含值的字典,作为一个没有重复元素的集合(即集合的字典)。
-
打印输入的集合字典。
例子
下面的程序使用 Naive 方法在 python 中创建了一个集合的字典(没有重复):
# creating a dictionary containing the values as set
# without duplicate elements
# (dictionary of sets)
inputDict = {'Employ ID': {10, 11, 12, 14, 15},
'Employ Age': {25, 30, 40, 35, 28}}
# printing the input dictionary of sets
print(inputDict)
输出
{'Employ ID': {10, 11, 12, 14, 15}, 'Employ Age': {35, 40, 25, 28, 30}}
创建一个有重复的集合
一般来说,Python中的 集合 不允许 有重复,即 删除所有重复的元素。
例子
下面的例子表明,Python 集合是不允许重复的。
下面的程序使用Naive方法在Python中创建了一个集合的字典(包含重复的)。
# creating a dictionary containing the values as set
# with duplicates elements
# the set does not allow duplicates
inputDict = {'Employ ID': {10, 11, 12, 13, 13, 14, 15, 10, 12, 11},
'Employ Age': {25, 30, 30, 40, 25, 35, 40, 28, 33, 25}}
# printing the input dictionary
print(inputDict)
输出
{'Employ ID': {10, 11, 12, 13, 14, 15}, 'Employ Age': {33, 35, 40, 25, 28, 30}}
在上面的例子中,我们可以观察到,所有重复的元素都被删除了,只打印了唯一的元素。因此,证明了Python集合删除不允许有重复。
方法2:使用defaultdict()方法
在这个方法中,将创建 默认集合 ,并将键值对传递给它。
语法
defaultdict(set)
传递带有 key 和 value 的 dictionary —
dictionary[“key”] |= {‘value1’, ‘value2′, ……………,’value n’}
这里。
- dictionary – 输入的 dictionary
-
key – 一个字典的键
-
value – 作为集合传递的字典的值。
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 使用 import 关键字从 collections 模块中导入 defaultdict 。
-
使用 defaultdict() 方法,使用旁路集合作为参数,创建一个空的字典集。
-
使用 [] 操作符给出字典的 key-value 对 。
-
打印创建的集合字典。
例子
下面的程序使用 defaultdict() 函数在 python 中创建了一个集合的 dictionary —
# importing defaultdict from the collections module
from collections import defaultdict
# creating an empty set of the dictionary using the
# defaultdict() method by passing set as argument to it
dictionary = defaultdict(set)
# giving the first key-value pair of a dictionary
dictionary["Employ ID"] |= {10, 11, 12, 14, 15}
# giving the second key-value pair of a dictionary
dictionary["Employ Age"] |= {25, 30, 40, 35, 28}
# printing the created dictionary of sets
print(dictionary)
输出
在执行过程中,上述程序将产生以下输出
defaultdict(<class 'set'>, {'Employ ID': {10, 11, 12, 14, 15}, 'Employ Age': {35, 40, 25, 28, 30}})
方法 3: 使用 setdefault() 方法
字典中一个键的值由 setdefault() 方法返回。如果不是,一个键和值被插入到字典中。
语法
dict.setdefault(key, default_value)
这里。
- key – 它是必须在字典中搜索的键。
-
default_value – 它是一个特定键的值
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 创建一个变量来存储包含值的输入字典,作为一个没有重复元素的集合(即集合的字典)。
-
使用 setdefault() 函数,通过传递 ‘Employ ID’ 作为参数来访问 ‘Employ ID ‘作为输入字典的一个集合的值。
-
使用 setdefault() 函数,通过传递’Employ Age’作为参数来访问 ‘ Employ Age ‘作为输入字典的一个集合的值。
-
创建一个新的键值对,其值为使用 setdefault() 方法设置的值。
-
在添加第3个集合后,打印出结果字典。
例子
下面的程序创建了一个集合的字典,并使用setdefault()方法访问其中的元素。
# creating a dictionary containing the values as sets
# (dictionary of sets)
inputDict = {'Employ ID': {10, 11, 12, 14, 15, 11},
'Employ Age': {25, 30, 40, 35, 28, 28}}
# accessing the values of 'Employ ID' of the dictionary as a set
# using setdefault() function
print("Accessing Employ ID:", inputDict.setdefault('Employ ID'))
# accessing the values of 'Employ Age' of dictionary as a set
# using setdefault() function
print("Accessing Employ Age:", inputDict.setdefault('Employ Age'))
# set the third set of values for the dictionary using setdefault method
# Employee names
inputDict = inputDict.setdefault(
'Employ Name', {'rohit', 'virat', 'pandya', 'smith', 'warner'})
# printing the dictionary after adding 3rd set
print(inputDict)
输出
Accessing Employ ID: {10, 11, 12, 14, 15}
Accessing Employ Age: {35, 40, 25, 28, 30}
{'pandya', 'rohit', 'smith', 'virat', 'warner'}
总结
在这篇文章中,我们学习了如何使用 3 种不同的方法在 Python 中创建一个集合的字典。这对于去除某些键的重复数据是必要的,比如只保留唯一的卷号,唯一的工作ID,等等。我们还学习了如何使用 setdefault() 函数来检索集合的字典。