Python实现无循环判断两数是否相邻(差值为±1)的简洁方法
简洁实现“接近”判断的Python方案
嘿,这个问题我太懂了!你现在写的多条件判断确实有点冗余,咱们可以用更清爽的方式实现,而且完全不需要循环,代码简洁又好读。
方法一:利用绝对值差值(最推荐)
核心思路是计算两个数的差值的绝对值,只要这个值≤1,就完美覆盖你原来的条件(相等、差1或-1):
if abs(num1 - num2) <= 1: # 这里写你的业务逻辑
如果你的“接近”严格定义为差值是1或-1(不包含相等),那只要把条件改成:
if abs(num1 - num2) == 1:
这个写法逻辑直观,代码极短,可读性拉满,而且性能最优,不用额外创建任何数据结构。
方法二:集合成员判断(另一种风格)
如果你更喜欢用集合来表达“符合条件的取值范围”,也可以这么写:
if num1 in {num2 - 1, num2, num2 + 1}: # 这里写你的业务逻辑
这种写法把num1可能符合要求的所有值放到一个集合里,通过成员判断来确认是否满足条件,可读性也不错,不过相比绝对值的方法,会额外创建一个临时集合,性能差异可以忽略,但绝对值写法更简洁。
测试示例
举几个例子验证效果:
- 当
num1=5,num2=6→abs(5-6)=1→ 返回True - 当
num1=3,num2=3→abs(0)=0→ 返回True - 当
num1=10,num2=8→abs(2)=2→ 返回False
完全覆盖你原来的冗长条件,代码却清爽太多啦!
内容的提问来源于stack exchange,提问作者raz erez
相关产品推荐
相关产品推荐

