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

如何让程序判断输入列表是否为已排序列表?我的校验代码失效求助

问题分析与修复

你的代码里判断原列表是否有序的功能失效,核心是这两个错误:

  • compare=c.split 没有调用split()方法,导致compare是函数对象而非原始输入的列表,和整数类型的values无法比较。
  • 即便调用c.split(),得到的是字符串列表,而values已被转为整数列表,类型不同也无法正确判断是否相等。

修复后的代码

c = input("Enter list values all on one line, separated by space\n")
# 先把原始输入转成整数列表,保存用于后续比较
compare = list(map(int, c.split()))
values = compare.copy()  # 复制一份用于排序,不修改原始列表

print("Original list:", compare)

# 冒泡排序逻辑
for i in range(len(values)):
    for j in range(i+1, len(values)):
        if values[i] > values[j]:
            values[j], values[i] = values[i], values[j]
        
print("New list:", values)

# 比较原始列表和排序后的列表是否一致
if compare != values:
    print("Not in order")
else:
    print("In order")

关键修改说明

  1. 先将原始输入转为整数列表compare,确保后续比较的是同类型的整数列表。
  2. 用values = compare.copy()复制原始列表,避免排序操作修改原始的compare列表,保证比较的准确性。
  3. 将两个独立的if判断改为else分支,逻辑更严谨,避免重复判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:45:34