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

如何以更Pythonic的方式实现元组区间交叉判断(一行且不导库)?

更Pythonic的区间交叉判断实现

你可以通过反向判断不交叉的情况来实现更简洁、符合Python风格的一行代码,逻辑直观且减少冗余条件:

def are_values_crossed(tuple_1, tuple_2):
    return not (tuple_1[1] < tuple_2[0] or tuple_2[1] < tuple_1[0])

tuple_1 = (5, 17)
tuple_2 = (4, 13)
print(are_values_crossed(tuple_1, tuple_2))  # 输出 True

为什么这更Pythonic?

  • 逻辑简洁:两个区间不交叉的唯一情况是其中一个完全位于另一个左侧(tuple_1右端小于tuple_2左端,或反之),取反后就是存在交叉的情况,避免了原代码中重复的端点检查。
  • 可读性强:一眼就能理解判断逻辑,契合Python「简洁直观」的设计哲学。
  • 一行核心逻辑:函数体仅需一行即可完成判断,满足你要求的一行代码实现。

如果想把函数写成更紧凑的lambda形式,也可以这样:

are_values_crossed = lambda t1, t2: not (t1[1] < t2[0] or t2[1] < t1[0])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:33:16