如何将Python元组转换为字典?
元组元素在括号内,而字典元素以键值对的形式出现,并在花括号之间封闭。
在本文中,我们将向您展示如何将Python元组转换为字典。以下是将元组转换为字典的方法 –
- 使用dict()函数
-
使用字典理解和enumerate()函数
-
使用zip()和dict()函数
假设我们有一个包含一些元素的元组。我们将使用上述不同的方法将输入元组转换为python字典并返回它。
方法1:使用dict()函数
在Python中,使用 dict() 函数将元组转换为字典。可以使用dict()函数创建字典对象。字典由dict()方法返回,它以元组的元组作为参数。每个元组包含一个键值对。
在下面的代码中,为了创建字典,我们使用了dict()方法并将字典理解作为参数。字典理解是一种将一个字典转换为另一个字典的技术。在此转换期间,可以在新字典中有条件地包含来自原始字典的元素,并且可以根据需要转换每个元素。
输出是一个键值对字典。元组的第一个元素成为字典键,而元组的第二个元素成为字典值。
示例
以下程序使用dict()函数将元组转换为字典 –
# input tuple
inputTuple = ((5, "TutorialsPoint"), (6, "Python"), (7, "Codes"))
print("The input Tuple:", inputTuple)
# Here we are iterating through each element (pairs) of the tuple using dictionary comprehension and converting it to the dictionary
resultDictionary = dict((x, y) for x, y in inputTuple)
print("The result dictionary:", resultDictionary)
输出
在执行上述程序时,将生成以下输出 –
The input Tuple: ((5, 'TutorialsPoint'), (6, 'Python'), (7, 'Codes'))
The result dictionary: {5: 'TutorialsPoint', 6: 'Python', 7: 'Codes'}
方法2:使用字典理解和enumerate()函数
注意 - 要将两个元组转换为字典,元组必须具有相同的长度。否则,我们将无法匹配所有键值对。
算法(步骤)
以下是要执行所需任务的算法/步骤
- 创建两个变量以存储具有相同长度的第一个和第二个输入元组。
-
使用if条件语句,检查两个元组的长度是否相等。
-
使用 enumerate() 函数在字典理解中将两个元组转换为字典,如果条件为真。
-
在转换后从给定的两个元组打印结果字典。
enumerate()方法会将一个可迭代对象加上计数器,返回一个enumerate对象。
###
语法
enumerate(iterable, start=0)
参数
iterable − 可以是任何支持迭代的序列/对象/可迭代对象
start − enumerate()在这个值开始计数,如果没有指定start,则使用0。
示例
以下程序使用字典推导式方法(一个元组作为字典的键,另一个作为值)将两个元组都转换为字典 –
# 输入元组1
inputTuple_1 = ('TutorialsPoint', 'Python', 'Codes')
# 输入元组2
inputTuple_2 = (5, 6, 7)
# 打印输入的元组1(键)
print("The input Tuple_1(keys) = ", inputTuple_1)
# 打印输入的元组2(值)
print("The input Tuple_2(values) = ", inputTuple_2)
# 检查两个元组的长度是否相等
if len(inputTuple_1) == len(inputTuple_2):
# 使用字典推导式方法将两个元组都转换为字典
# 使用enumerate()函数
resultDictionary = {inputTuple_1[i] : inputTuple_2[i] for i, _ in enumerate(inputTuple_2)}
# 打印从给定的两个元组得到的结果字典
print("The result dictionary:", resultDictionary)
输出
The input Tuple_1(keys) = ('TutorialsPoint', 'Python', 'Codes')
The input Tuple_2(values) = (5, 6, 7)
The result dictionary: {'TutorialsPoint': 5, 'Python': 6, 'Codes': 7}
方法三:使用zip()和dict()函数
算法(步骤)
- 创建两个变量来存储具有相同长度的第一个和第二个输入元组。
-
使用if条件语句,检查两个元组的长度是否相等。
-
如果条件为真,则使用zip()和dict()函数将两个元组转换为字典。
zip()方法 − zip()方法接受可迭代对象(可能是零个或多个),将它们合并为一个元组并返回它。
语法- zip(*iterablesiterables)
- dict()函数 − dict()函数用于创建字典。
-
在转换后从给定的两个元组打印结果字典。
示例
以下程序使用zip()和dict()函数(一个元组作为字典的键,另一个作为值)将两个元组都转换为字典 –
# 输入元组1
inputTuple_1 = ('TutorialsPoint', 'Python', 'Codes')
# 输入元组2
inputTuple_2 = (5, 6, 7)
# 打印输入元组1的键
print("输入的元组1(键) = ", inputTuple_1)
# 打印输入元组2的值
print("输入的元组2(值) = ", inputTuple_2)
# 检查两个元组的长度是否相等
if len(inputTuple_1) == len(inputTuple_2):
# 使用zip()和dict()函数将这两个元组转换为字典
# 这里的zip()函数将元组1的元素作为键,元组2的元素作为值
# 然后我们使用dict()将它转换为一个字典
resultDictionary = dict(zip(inputTuple_1, inputTuple_2))
# 打印这两个元组转换后的字典
print("转换后的字典:", resultDictionary)
输出
输入的元组1(键) = ('TutorialsPoint', 'Python', 'Codes')
输入的元组2(值) = (5, 6, 7)
转换后的字典: {'TutorialsPoint': 5, 'Python': 6, 'Codes': 7}
结论
在本文中,我们学习了如何使用三种不同的函数将元组转换为字典。我们还观察到如果有两个元组,我们可以使用两种不同的方法(zip()和enumerate())将第一个元组的元素作为键,第二个元组的元素作为值创建一个字典。