如何检查列表是否已排序?
在Python中,我怎么检查一个数字列表是否已经排好序了呢?
5 个回答
5
通常情况下,你应该已经知道一个列表是否是排好序的(因为这就是你输入的定义,或者你之前已经对它进行了排序)。
如果你需要检查一个列表是否排好序,因为如果没有排好序你想要对它进行排序,那就直接排序吧。如果列表已经排好序,这个操作是很便宜的,和明确检查顺序的成本差不多。
换句话说:
mylist.sort()
现在你知道它是排好序的了。
12
在编程中,有时候我们会遇到一些问题,像是代码运行不正常或者出现错误。这种情况下,我们可以去一些技术论坛,比如StackOverflow,寻求帮助。在这些论坛上,很多人会分享他们的经验和解决方案,帮助其他人解决类似的问题。
当你在这些论坛上提问时,记得要把你的问题描述清楚,包括你遇到的具体情况和你尝试过的解决办法。这样,其他人才能更好地理解你的问题,并给出有效的建议。
同时,查看别人提问和回答的问题也是一个很好的学习方式。你可以从中学到很多编程技巧和解决问题的方法。
总之,利用好这些技术社区,可以让你在编程的路上走得更顺利。
some_list == sorted(some_list)
26
这只能通过遍历列表来实现(可以是隐式的,也可以是显式的):
all(b >= a for a, b in zip(the_list, the_list[1:])
但是,如果你需要列表是有序的,为什么不直接排序呢?Python的排序算法在处理已经排好序的列表时会非常快——甚至可能比上面提到的测试还要快。
补充说明:因为这个话题变成了关于性能的讨论,这里有一个使用懒惰迭代器的版本:
it = iter(the_list)
it.next()
all(b >= a for a, b in itertools.izip(the_list, it))
对于一个随机顺序的包含一百万个条目的列表,这种方法比the_list == sorted(the_list)
快超过10000倍。