在没有排序功能的情况下在python中对列表进行排序

新手上路,请多包涵
import sys
import pdb

a = [5, 2, 4, 1]

for i in range(len(a)):
    for j in range(len(a) - 1):
        if a[j] > a[j+1]:
            t = a[j]
            a[j] = a[j+1]
            a[j] = t

print a
sys.exit()

我刚刚在 Python 中尝试了一个 C 程序——没有 sorted 函数的正常排序。为什么我没有得到排序列表?

原文由 rajpython 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 298
2 个回答
t = a[j]

其次是

a[j] = t

似乎不对。如果你打算交换它们,第二个应该是:

 a[j + 1] = t

但在 Python 中,最好写成:

 a[j], a[j + 1] = a[j + 1], a[j]

(当然,在 Python 中, 最好写成快速排序。)

原文由 Ry- 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试这个 -:

 for i in range(len(a)):
    for j in range(len(a) - 1):
        if a[j] > a[j+1]:
            a[j+1], a[j] = a[j], a[j+1]

print a

:)

原文由 Nilesh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题