IndexError: 列表索引超出范围(在Python中)——如何获取列表的最后一个元素?

编程语言 2026-07-08

我想用range函数遍历一个数字列表,以便把一个空列表填满,其中原列表中的偶数被翻倍。

不管我怎么尝试,似乎都抓不到列表中的最后一个数字。这是我的原始代码:

my_list = [1, 2, 3, 4]

encoded_list = []

odd = 0
even = 1

for position in range(0, len(my_list) - 1):
    if my_list[position] == my_list[odd]:
        number = my_list[odd]       
        encoded_list = encoded_list + [number]
        odd = odd + 2
    elif my_list[position] == my_list[even]:
        number = my_list[even] + 2
        encoded_list = encoded_list + [number]
        even = even + 2

print(encoded_list)

输出:

[1, 4, 3]

到目前为止,我已经尝试将 range(0, len(my_list) - 1)) 替换为 range(len(my_list))range(0, 3),但两者都返回消息 IndexError: list index out of range。 有没有办法使用 range() 函数来修复这个问题?

解决方案

你可以试试使用 my_list[-1]
它被称为列表切片,其中 -1表示数组的最后一个元素,-2表示倒数第二个。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章