python - 如何检查列表是否已排序?

标签 python sorting

<分区>

Possible Duplicate:
Pythonic way to check if a list is sorted or not

在 python 中,如何测试数字列表是否已经排序?

最佳答案

这只有通过遍历列表(隐式或显式)才有可能:

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 多倍。

关于python - 如何检查列表是否已排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4710763/

相关文章:

python - 无法使用 python match() 解析字符串 - 出现错误 AttributeError : 'NoneType' object has no attribute 'group'

python - 多维切片的紧凑符号

c - 排序结构不起作用

javascript - 使用 JavaScript/JQuery,您可以根据列的 <td> 类名对 HTML 表格列进行排序(升序/降序)吗?

python - 检查两个字典是否不相交

python - matplotlib 图例标签与 LaTeX 数学的垂直对齐

c++ - 使用 sqlite 和 c++ 对数据库表进行实际排序的最佳方法?

javascript - 按多个条件对多维数组进行排序

javascript - 如何在排序时同步 Kendo UI 网格数据源?

python - 在行 pandas python 上使用部分字符串匹配返回 DataFrame 项