Python程序:将列表元素作为键值对交替出现
在本文章中,我们将学习如何在Python中将交替列表元素作为键值对获取值。
假设我们有一个包含整数的 输入列表 。现在我们就可以开始了。
使用的方法
实现这个任务的方法如下:-
- 使用 for 循环
-
使用字典推导式和列表切片
实例
假设我们有一个仅包含输入列表的 输入列表。 我们现在将交替列表元素作为键值对打印出来。
输入
inputList = [20, 13, 5, 2, 6, 8, 18, 3]
输出
具有交替列表元素作为键值对的字典:
{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 循环返回具有交替列表元素作为键值对的字典 –
# 输入列表
inputList = [20, 13, 5, 2, 6, 8, 18, 3]
# 打印给定的输入列表
print("输入列表:", inputList)
# 创建一个用于存储结果字典的空字典
outputDict = dict()
# 遍历到输入列表的长度,除了最后一个索引
for i in range(len(inputList) - 2):
# 检查当前索引是否为偶数
if i % 2:
# 分配偶数索引元素给输出字典作为键值对
outputDict[inputList[i]] = inputList[i + 2]
#获取具有奇数索引元素的另一个集合
for i in range(len(inputList) - 2):
if not i % 2:
outputDict[inputList[i]] = inputList[i + 2]
# 打印具有交替列表元素作为键值对的结果字典
print("具有交替列表元素作为键值对的字典:\n", outputDict)
输出
在执行上述程序后,将生成以下输出 –
输入列表: [20, 13, 5, 2, 6, 8, 18, 3]
具有交替列表元素作为键值对的字典:
{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]
参数
- start - 开始的索引位置。
-
end - 结束的索引位置。
-
step - 每次跳跃的数量,即步长。
算法(步骤)
以下是执行所需任务的算法/步骤:
- 创建一个变量来存储输入列表并打印给定的输入列表。
-
使用切片从输入列表获取所有奇数索引元素,起始值为1,步长为2。
-
使用切片从输入列表获取所有偶数索引元素,起始值为0,步长为2。
-
使用字典推导遍历奇数列表,获取奇数索引列表元素作为键值对。
-
更新(添加)偶数索引列表元素作为键值对到上述输出字典中。
-
update() 函数(将给定项目(例如字典或具有键值对的可迭代对象)插入字典中)。
-
打印具有交替列表元素的键值对的输出字典。
示例
以下程序使用字典推导和列表切片返回一个具有交替列表元素作为键值对的字典 –
# 输入列表
inputList = [20, 13, 5, 2, 6, 8, 18, 3]
# 打印给定的输入列表
print("Input List: ", inputList)
# 使用切片从输入列表获取所有奇数索引元素
oddList = inputList[1::2]
# 使用切片从输入列表获取所有偶数索引元素
evenList = inputList[::2]
# 获取奇数索引列表元素作为键值对
outputDict = {oddList[i]: oddList[i + 1] for i in range(len(oddList) - 1)}
# 添加偶数索引列表元素作为键值对到输出字典
outputDict.update({evenList[i]: evenList[i + 1]
for i in range(len(evenList) - 1)})
# 打印具有交替列表元素作为键值对的输出字典
print("Dictionary with alternate list elements as key-value pairs:\n", outputDict)
输出
在执行上述程序时,会生成以下输出 –
输入列表:[20,13,5,2,6,8,18,3]
具有交替列表元素作为键值对的字典:
{13:2,2:8,8:3,20:5,5:6,6:18}
结论
本文教会我们两种获取交替列表元素作为键值对的不同方法。我们学习了如何使用步长值来切片可迭代的内容,例如列表、元组等。此外,我们学习了字典推导。最后,我们学习了如何使用update()函数添加或更新字典。