![]() |
1
225
实际上我们并没有给出anijhaw想要的答案。这是一行:
对于Python 3:
|
![]() |
2
86
我只想用
除非它是一个非常大的列表,在这种情况下,您可能需要创建一个自定义函数。 如果你只是要排序,如果它没有排序,那么忘记检查和排序。
别想太多。
如果列表已经排序,那么这将是O(n)(并且O(n)在
|
![]() |
3
46
此迭代器形式比使用整数索引快10-15%:
|
![]() |
4
22
实现这一点的一个很好的方法是使用
这种实现速度很快,适用于任何iterables。 |
![]() |
5
11
我做了个基准测试
所以在大多数情况下,都有一个明显的赢家。 更新: 阿伦斯特林的答案(6和7)实际上是所有情况下最快的。#7是最快的,因为它没有查找键的间接层。
|
![]() |
6
9
我会这么做(从这里的很多答案(亚伦·斯特林,惠业东,保罗·麦奎尔的一部分)中偷来)而且大部分都是这样 Armin Ronacher ):
|
![]() |
7
5
我用这一行基于微小差异():
但是,如果x是无符号int,则需要小心,这可能会导致中的静默整数下溢微小差异(),导致假阳性。以下是修改后的版本:
|
![]() |
8
4
在Python3中,
当元组
奖励:检查有限(!)无法索引的生成器:
一定要使用
|
![]() |
9
3
蓝宝石太阳
|
![]() |
10
3
虽然我不认为有一个保证
所以你可以这样做:
|
![]() |
11
3
一点都不太像蟒蛇,但我们至少需要一个
accumulator变量只存储上次检查的值,如果任何值小于前一个值,则将累加器设置为无穷大(因此最后仍然是无穷大,因为“前一个值”始终大于当前值)。 |
![]() |
12
2
返回(排序(lst)==lst) 如果大部分时间数组没有排序,那么最好使用一种解决方案,该解决方案不扫描整个数组,并且在发现未排序的前缀时立即返回False。下面是我能找到的最快的解决方案,它不是特别优雅:
使用nathanfarrington的基准测试,除了在大的排序列表上运行外,在所有情况下,这都比使用sorted(lst)实现更好的运行时。 这是我电脑上的基准测试结果。
第二种解决方案:
|
![]() |
13
2
如果您想用最快的方式来实现numpy阵列,请使用 numba 代码将很快,因为它将由numba编译
|
![]() |
14
2
只需添加另一种方式(即使它需要额外的模块):
要检查描述顺序:
对你来说这不是问题但是
你的序列包含
请注意
|
![]() |
15
2
懒惰的
|
![]() |
16
2
|
![]() |
17
1
因为我没有看到这个选项上面,我会把它添加到所有的答案。
让我们用
|
![]() |
18
1
随着即将到来的
|
![]() |
19
1
|
![]() |
20
0
导出的归约值是由三部分组成的元组(
分类标签
,
,
LastElement值
第一个值是我们感兴趣的值,所以我们使用
|
![]() |
21
0
使用赋值表达式的解决方案(在Python 3.8中添加):
|
![]() |
22
-1
这实际上是使用递归实现的最短方法:如果已排序,则将打印True,否则将打印False
|
![]() |
23
-1
|
![]() |
24
-1
最简单的方法:
|
![]() |
25
-3
===================================================================== 另一种查找给定列表是否已排序的方法
|
![]() |
Cute dog · 如何将文本与重新排序的图像相匹配? 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
![]() |
Rohan Mittal · 按dict值对dict排序 2 年前 |
![]() |
Pikachu620 · 可以对事件列表进行排序吗? 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |
![]() |
tryingmybest09 · 设置出生日期排序不正确 2 年前 |