Python 以键-值对的形式交替列表元素
在本文中,我们将学习如何在Python中将交替的列表元素作为键-值对获取。
假设我们已经获取了一个包含整数的输入列表。我们现在将:
使用的方法
以下是完成此任务所使用的各种方法:
- 使用for循环
-
使用字典推导和列表切片
示例
假设我们已经获取了一个包含整数的输入列表。我们现在将交替的列表元素打印成键-值对。
输入
inputList = [20, 13, 5, 2, 6, 8, 18, 3]
输出
Dictionary with alternate list elements as key-value pairs:
{13: 2, 2: 8, 8: 3, 20: 5, 5: 6, 6: 18}
交替元素被映射为键值对。13 -> 2 [交替]
方法1:使用For循环
步骤
以下是执行所需任务的算法/步骤:
- 创建一个变量来存储输入列表。
-
打印输入列表。
-
创建一个空的字典来存储结果字典。
-
使用 for循环 来遍历输入列表的长度,除了最后一个索引,使用range()和len()函数(返回对象中的项目数)。
-
range()函数返回从0开始以1(默认)递增并在给定数之前停止的数字序列。
-
使用 if条件 语句来检查当前索引是否为偶数,使用模 % 运算符(返回余数)。
-
将偶数索引元素分配给输出字典作为键值对。
-
同样地,使用not逻辑运算符来获取奇数索引元素的其他集合。
-
打印交替列表元素作为键值对的结果字典。
示例
以下程序使用for循环返回带有交替列表元素作为键值对的字典:
# input list
inputList = [20, 13, 5, 2, 6, 8, 18, 3]
# printing the given input list
print("Input List: ", inputList)
# creating an empty dictionary for storing resultant dict
outputDict = dict()
# =traversing till the length of the input list except for the last index
for i in range(len(inputList) - 2):
# checking whether the current index is even or not
if i % 2:
# assigning even index elements to output dict as a key-value pairs
outputDict[inputList[i]] = inputList[i + 2]
# getting the other set with odd index elements
for i in range(len(inputList) - 2):
if not i % 2:
outputDict[inputList[i]] = inputList[i + 2]
# printing the resultant dictionary with alternate list elements as key-value pairs
print("Dictionary with alternate list elements as key-value pairs:\n", outputDict)
输出
在执行时,上述程序将生成以下输出:
Input List: [20, 13, 5, 2, 6, 8, 18, 3]
Dictionary with alternate list elements as key-value pairs:
{13: 2, 2: 8, 8: 3, 20: 5, 5: 6, 6: 18}
方法2:使用字典推导和列表切片
Python支持字典推导,就像列表推导一样。可以使用简单的表达式来创建字典。字典推导的公式如下:
{key: value for (key, value) in iterable}
切片列表 是程序员经常使用的一种实践,也是解决问题最有效的方法之一。考虑一个Python列表。您必须切片一个列表才能访问列表元素的范围。使用 冒号(:) ,一种简单的切片操作符,是实现这一目的的一种方法。
语法
[start:stop:step]
参数
- 起始位置 − 从何处开始
-
结束位置 − 结束的位置
-
步长 − 中间跳跃的次数,即步长
步骤
以下是执行所需任务的算法/步骤:
- 创建一个变量来存储输入列表,并打印给定的输入列表。
-
使用 切片 从输入列表中获取所有 奇数 索引元素,起始值为1,步长为2。
-
使用 切片 从输入列表中获取所有偶数索引元素,起始值为0,步长为2。
-
使用字典推导法通过遍历奇数索引列表来获取奇数索引列表元素作为键值对。
-
将偶数索引列表元素作为键值对添加到上面的输出字典中。
-
update() 函数(将给定的项,例如字典或可迭代的对象与键值对插入到字典中)。
-
打印具有交替列表元素的结果字典。
示例
以下程序使用字典推导法和列表切片返回一个具有交替列表元素的字典:
# input list
inputList = [20, 13, 5, 2, 6, 8, 18, 3]
# printing the given input list
print("Input List: ", inputList)
# getting all odd index elements from input list using slicing
oddList = inputList[1::2]
# getting all odd index elements from input list using slicing
evenList = inputList[::2]
# getting odd index list elements as key-value pairs
outputDict = {oddList[i]: oddList[i + 1] for i in range(len(oddList) - 1)}
#updating(adding) even index list elements as key-value pairs to the outputDict
outputDict.update({evenList[i]: evenList[i + 1]
for i in range(len(evenList) - 1)})
# printing the resultant dictionary with alternate list elements as key-value pairs
print("Dictionary with alternate list elements as key-value pairs:\n", outputDict)
输出
在执行时,上述程序将生成以下输出-
Input List: [20, 13, 5, 2, 6, 8, 18, 3]
Dictionary with alternate list elements as key-value pairs:
{13: 2, 2: 8, 8: 3, 20: 5, 5: 6, 6: 18}
结论
本文教导我们两种不同的方法来获取备用列表元素作为键值对。我们学会了如何使用步长值对可迭代对象(如列表、元组等)进行切片。此外,我们还学会了字典推导式。最后,我们学会了如何使用update()函数来添加或更新字典。