看到一道题,对比自己写的野路子函数,和题主的解法,及之前看过的一个巧方法,瞬间立分高下,书读的少,还是要多学习。。。
题目:
随机生成100个10至1000之间的数,对生成的100个数进行排序,禁止使用Python自带的排序函数,要自己实现排序函数
---我的野路子函数---
import numpy
def l_sort(list_a):
list_b = []
for value in list_a:
if len(list_b) > 1:
i = 0
while i < len(list_b) :
if value >= list_b[-1]:
list_b.append(value)
break
elif value >= list_b[i] and value < list_b[i+1]:
list_b.insert(i+1,value)
break
else:
i += 1
elif len(list_b) == 1 :
if value >= list_b[0]:
list_b.append(value)
else:
list_b.insert(0,value)
else:
list_b.append(value)
return list_b
list_a = list(numpy.random.randint(0,1000,100))
a = l_sort(list_a)
print(a)
题主用前后数对比方式进行排序,参考链接:https://www.jianshu.com/p/08c89733c9db
还有一个利用enumerate()的巧方法,参考自定义sort函数部分,链接:https://blog.csdn.net/beyondlee2011/article/details/86556327#3__234
网友评论