You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python交换列表首尾元素报IndexError: list index out of range如何解决

错误触发原因

Python 列表遵循0起始的索引规则,长度为n的列表合法索引范围为0到n-1。你代码中直接将列表长度len(list2)作为索引取值,超出了合法索引范围,因此抛出IndexError: list index out of range错误。

修复方案(按索引最小与索引最大位置元素互换的需求)

你要互换的最小索引是第一个元素对应下标0,最大索引是最后一个元素对应下标len(list2)-1,也可以用Python列表的负索引语法-1直接取最后一个元素,简化写法。
修复后代码如下:

list1 = input("Введите список: ")
list2 = list1.split()
# 增加边界判断,避免列表元素不足2个时无意义的互换操作
if len(list2) >= 2:
    list2[0], list2[-1] = list2[-1], list2[0]
print(list2)

补充:如果需求为数值最小与数值最大的元素互换

如果你的实际需求是找到列表中数值最小和最大的元素互换位置,而非按首尾索引互换,需要先将输入的字符串转为数字列表,再找对应下标执行互换,代码如下:

list1 = input("Введите список: ")
# 将输入的字符串分割后转为整数列表
num_list = list(map(int, list1.split()))
if len(num_list) >= 2:
    # 获取数值最小、最大的元素对应下标
    min_index = num_list.index(min(num_list))
    max_index = num_list.index(max(num_list))
    num_list[min_index], num_list[max_index] = num_list[max_index], num_list[min_index]
print(num_list)

内容的提问来源于stack exchange,提问作者369

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:57:00