python - 如何在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")
解决方案
您的排序逻辑是正确的,但是它不适用于您的想法。实际上,它处理的是字符串列表(不是整数),因此比较是字典顺序的,而不是数字的。根据此标准,您的列表将被排序。
如果您将输入更改为list = [10, 79, 8, 51, 2]
,您将获得所需的结果。(除此之外,最好不要使用类似的名称list
。)
推荐阅读
- python - 在 train_test_split 之后运行 ratios_ztest
- python - 将字典转换为多维数组?
- apache - 不同文件类型的独立 Apache mod_substitute 规则?
- javascript - ReactJS - PrivateRoute 函数中的最大更新深度超出错误
- selenium-webdriver - selenium webdriver - headless chrome error
- postgresql - REST Uploading/downloading large file with Spring boot/JPA, Postgres
- c# - Mock all interfaces from assembly using Moq
- asp.net-mvc - ASP.NET MVC Signalr reconnect and negotiate throwing a System.OutOfMemoryException
- beagle - 如何在 Beagle 中创建适用于 Angular、Android 和 iOS 的图像?
- laravel - Laravel saml2 元数据加密块