【发布时间】:2013-01-19 02:29:34
【问题描述】:
这是选择排序的代码,但它不打印排序列表。怎么显示?
badlist = input("Enter list: ")
def select(badlist):
l = list[:]
sorted = []
while len(l):
lowest == l[0]
for x in l:
if x < lowest:
lowest = x
sorted.append(lowest)
l.remove(lowest)
return sorted
select(badlist)
【问题讨论】:
-
代码中没有打印语句试试
print select(badlist) -
我想知道这里发生了什么
l = list[:];不要将变量命名为与内置变量相同。sorted = []然后sorted.append(lowest)只是自找麻烦。 -
为什么不简单地使用内置的
sorted(list)然后你可以让你的整个代码是:print sorted(input("Enter list: ")) -
附带说明,您的实现似乎不正确。选择排序是一种 inplace 算法,因此您应该对已排序和未排序的部分使用一个列表(提示:交换最小和当前项目,而不是删除/追加)。
标签: python sorting selection-sort