为什么python在不应该读取else语句中的代码时

时间:2021-06-12 13:45:47

标签: python list

我是一名 Python 初学者,遇到了一个问题,我无法解决列表索引超出范围的问题。

originalList = [['a','b'],['c','d'],['e','f']]
outputList = []
for i in range(len(originalList)):
    if i == len(originalList):
        outputList.append([originalList[i],originalList[0]])
    els:
        outputList.append([originalList[i], originalList[i+1]])

print(outputList)

我需要输出:

outputList = [[['a','b'],['c','d']],[['c','d'],['e','f']],[['e','f'],['a','b']]]

但是,当我尝试运行此代码时,它在第 7 行错误处为我提供了超出范围的列表索引。 我不知道为什么会发生这个错误,如果 i 等于列表的长度,python 甚至不应该在第 7 行运行代码。

2 个答案:

答案 0 :(得分:0)

只要改变 if i == len(originalList):if i == len(originalList)-1:

说明: 列表从索引 0 开始,因此包含 N 个元素的列表将具有从 0 到 N-1 的所有索引,这意味着您的最后一个元素将位于索引 N-1。

答案 1 :(得分:0)

我设法通过更改第 7 行来解决这个问题:

outputList.append([originalList[i], originalList[i+1]])

为此:

outputList.append([originalList[i], originalList[-1-i]])
相关问题