我有一个在列表中存储9个随机数的代码。
现在,我想对列表对象中的值进行排序。
我发现了两种方法。但是这些方法都有一些问题。
这是我的代码1:
import random
array = []
for i in range(1, 10):
array.append(random.randrange(i, 100))
array.sort()
print(array)
输出:
[14, 23, 31, 33, 50, 65, 86, 96, 99]
该代码运行良好,但必须在“ for循环”之后执行。我想在“ for循环”中执行排序。
这是我的代码2:
import random
array = []
for i in range(1, 10):
array.append(random.randrange(i, 100))
array.sort()
print(array)
输出:
[8, 22, 23, 26, 39, 48, 51, 53, 71]
这段代码效果很好,但是您将运行九次排序。
有什么好办法吗?
如果我真的了解您的意思,则希望在循环中的每个迭代时间获得一个排序后的数组,也就是说,您想在sorted array中插入一些内容。bisect
在这里可以提供帮助。
以下代码将确保数组始终在循环中排序,但并非每次都排序,它会进行二进制搜索并将新元素插入到数组中:
import random
import bisect
array = []
for i in range(1, 10):
bisect.insort(array, random.randrange(i, 100))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句