gpt4 book ai didi

python - 替代 python 的 .sort() (用于插入大列表并保持排序)

转载 作者:太空狗 更新时间:2023-10-29 20:34:21 30 4
gpt4 key购买 nike

我需要不断地向预先排序的列表中添加数字:

for num in numberList:
list.append(num)
list.sort()

每次迭代都很短,但是当给定的 numberList 包含数万个值时,此方法会变慢。是否有更有效的函数可以使列表保持原样并找出插入新数字的索引以保持数字的正确顺序?我自己尝试编写的任何东西都比 .sort() 花费的时间更长

最佳答案

您可以使用 bisect.insort() function将值插入到已排序的列表中:

from bisect import insort

insort(list, num)

请注意,这仍然需要一些时间,因为插入点之后的剩余元素都必须向上移动一步;您可能需要考虑将列表重新实现为链表。

但是,如果您保持列表排序只是为了始终能够获得最小或最大的数字,您应该使用 heapq module反而;堆没有按照严格的排序顺序保存,但在任何时候都能非常快速地为您提供最小值或最大值。

关于python - 替代 python 的 .sort() (用于插入大列表并保持排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31493603/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com