gpt4 book ai didi

python - 如何查看列表是否包含连续数字

转载 作者:太空狗 更新时间:2023-10-29 18:21:01 31 4
gpt4 key购买 nike

我想测试一个列表是否包含连续的整数并且没有重复的数字。例如,如果我有

l = [1, 3, 5, 2, 4, 6]

它应该返回 True。

在不修改原始列表的情况下,如何检查列表是否最多包含n个连续数字?我考虑过复制列表并删除原始列表中出现的每个数字,如果列表为空,则它将返回 True。

有更好的方法吗?

最佳答案

对于整个列表,它应该像这样简单

sorted(l) == list(range(min(l), max(l)+1))

这会保留原始列表,但如果您的列表特别长,制作副本(然后排序)可能会很昂贵。

请注意,在 Python 2 中,您可以简单地使用以下内容,因为 range 返回了一个 list 对象。在 3.x 及更高版本中,函数已更改为返回 range 对象,因此在与 sorted(l)< 比较之前需要显式转换为 list/

sorted(l) == range(min(l), max(l)+1))

要检查 n 条目是否连续且不重复,会变得有点复杂:

def check(n, l):
subs = [l[i:i+n] for i in range(len(l)) if len(l[i:i+n]) == n]
return any([(sorted(sub) in range(min(l), max(l)+1)) for sub in subs])

关于python - 如何查看列表是否包含连续数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33575235/

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