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

为何以下Python代码无法实现列表交换反转?

问题分析与解决

你的Python代码看似逻辑正确,但运行后列表未反转,核心问题出在缩进错误和无效语法上:

具体问题点

  • 缩进错误:Python通过缩进划分代码块,你定义rev函数后,for循环没有缩进,导致该循环不属于函数内部代码。函数rev实际只执行了return n,直接返回原列表,完全没执行反转操作。
  • 无效语法:代码中的or,n[i], n[len(n)-i-1] = n[len(n)-i-1], n[i]是错误写法,这行代码会引发语法报错(若缩进问题修复后),推测是你想注释或写错了交换语句的写法。

修正后的代码

将for循环正确缩进,并删除无效语法行,代码即可正常反转列表:

def rev(n):
    for i in range(len(n)//2):
        # 临时变量交换法
        temp = n[i]
        n[i] = n[len(n)-i-1]
        n[len(n)-i-1] = temp
        # 也可以用Python简洁的交换语法,二选一即可
        # n[i], n[len(n)-i-1] = n[len(n)-i-1], n[i]
    return n

n=[34,45,56,67]
print(rev(n))  # 输出结果:[67, 56, 45, 34]

另外补充:Python本身提供了更简便的列表反转方式,比如使用n.reverse()(原地修改列表)或者n[::-1](返回新的反转列表),你可以根据需求选择使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:55:31