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条件语句结合取模运算符%(返回余数)来检查当前索引是否为偶数。
将偶数索引元素作为键值对赋值给输出字典。
同样,使用非逻辑运算符检查奇数索引,获取另一组奇数索引元素。
打印结果字典,其中包含作为键值对的交替列表元素。
示例
以下程序使用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]
参数
start - 开始索引
end - 结束索引
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()函数添加或更新字典。