You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写all语句判断列表元素是否彼此相差±2

实现列表元素彼此相差±2的判断逻辑

你可以通过两种方式用all()语句实现需求:

方式一:直接比较所有元素对

这种方式逻辑直观,遍历每一对元素,检查它们的差值绝对值是否不超过2:

scores = [80,90,50,60,70]
result = all(abs(x - y) <= 2 for x in scores for y in scores)
# 你的示例列表中元素差值远超2,result会返回False

缺点是会重复比较元素对(比如x=80和y=90、x=90和y=80会被分别判断),但小规模列表下几乎不影响效率。

方式二:基于极值范围判断(更高效)

如果所有元素彼此相差不超过±2,那么列表的最大值与最小值的差必然≤2,且所有元素都落在[最小值, 最小值+2]区间内。利用这个逻辑可以写出更高效的代码:

scores = [80,90,50,60,70]
min_score = min(scores)
result = all(min_score <= x <= min_score + 2 for x in scores)
# 示例列表的最小值是50,90远大于52,所以result为False

这种方式只需先计算一次最小值,再遍历一次列表,效率比方式一更高,尤其适合处理大列表。

对比你之前判断元素与固定值(如82)相差±2的代码,核心区别是把固定区间范围,换成了基于列表自身极值动态生成的区间。

内容的提问来源于stack exchange,提问作者newdeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:52:03