You need to enable JavaScript to run this app. 不使用sort/sorted合并Python列表升序排序,结果异常如何解决
优惠活动
大模型
产品
解决方案
定价
更多

不使用sort/sorted合并Python列表升序排序,结果异常如何解决

问题原因
  • 核心问题是拆分输入后没有把字符串转成数值类型:input().split()得到的所有元素都是字符串类型,直接拿字符串对比大小时,Python会按ASCII码逐位比较,比如"10"和"4"对比时,第一位"1"的ASCII码比"4"小,所以会判定"10"<"4",最终排序结果完全错乱。
  • 你测试输入里的10、20会跑到4前面,就是字符串比较规则导致的。
修改方案

只需要在读取输入的时候把每个元素转成int类型即可,修改后的代码如下:

def list_merge():
    # 拆分输入时直接转成int类型
    list_1 = [int(x) for x in input("Type list 1: ").split(", ")]
    list_2 = [int(y) for y in input("Type list 2: ").split(", ")]
    result = list_1 + list_2
    new_list = []
    while result:
        minimum = result[0]
        for x in result: 
            if x < minimum:
                minimum = x
        new_list.append(minimum)
        result.remove(minimum) 
    print(new_list)

用你给出的测试输入(列表1为1, 4, 7, 10、列表2为4, 6, 8, 20)运行修改后的代码,输出就是你预期的[1, 4, 4, 6, 7, 8, 10, 20]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 13:45:04