gpt4 book ai didi

python - 确定列表是否按降序排列

转载 作者:太空狗 更新时间:2023-10-29 18:13:11 24 4
gpt4 key购买 nike

我正在尝试编写一个函数来测试列表是否按降序排列。这是我目前所拥有的,但它似乎并不适用于所有列表。

我使用了列表 [9,8,5,1,4,3,2],它返回了 'true'

我似乎无法弄清楚我的错误在哪里。

def ordertest(A):
n = len(A)
for i in range(n):
if A[i] >= A[i+1]:
return 'true'
else:
return 'false'

最佳答案

您可以使用 a generator expression 轻松完成此操作和 the all() builtin :

all(earlier >= later for earlier, later in zip(seq, seq[1:]))

例如:

>>> seq = [9, 8, 5, 1, 4, 3, 2] 
>>> all(earlier >= later for earlier, later in zip(seq, seq[1:]))
False
>>> seq = [9, 8, 5, 4, 3, 2]
>>> all(earlier >= later for earlier, later in zip(seq, seq[1:]))
True

这应该很好而且很快,因为它避免了 python 端循环,很好地短路(如果你在 2.x 中使用 itertools.izip()),并且很好,清晰易读(例如,避免遍历索引)。

请注意,所有迭代器(不仅仅是序列)的通用解决方案也是可能的:

first, second = itertools.tee(iterable)
next(second)
all(earlier >= later for earlier, later in zip(first, second))

关于python - 确定列表是否按降序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12734178/

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