首页 > 解决方案 > 如何在python中对列表进行排序

问题描述

我这样输入-> 10 79 8 51 2

我想得到[2, 8, 10, 51, 79]

但我明白了[10, 2, 51, 79, 8]

请告诉我我的代码有什么问题?

Python

list = input().split()
print(list)
for i in range(0, 4):
    print(i)
    for j in range(i+1, 5):
        if list[i] > list[j]:
            print(list[i],list[j])
            list[i], list[j] = list[j], list[i]
            print(list)
        else:
            print(j, list[i], list[j])
            print("don't switch")

标签: pythonsorting

解决方案


您的排序逻辑是正确的,但是它不适用于您的想法。实际上,它处理的是字符串列表(不是整数),因此比较是字典顺序的,而不是数字的。根据此标准,您的列表将被排序。

如果您将输入更改为list = [10, 79, 8, 51, 2],您将获得所需的结果。(除此之外,最好不要使用类似的名称list。)


推荐阅读