如何以最简洁、最Pythonic的方式判断变量是否处于两变量之间?
判断变量是否处于两数之间的Pythonic写法
针对你想判断n是否处于n1和n2之间(不包含边界)的需求,这里提供几种更符合Python风格的实现方式:
拆包排序后判断:先将
n1和n2排序并拆包为高低值,再进行范围判断,代码可读性更强:low, high = sorted((n1, n2)) if low < n < high: # 执行你的逻辑数学乘积判断:利用两差值的乘积符号来判断,写法更简洁,无需调用min/max或排序:
if (n - n1) * (n - n2) < 0: # 执行你的逻辑原理是:如果
n在n1和n2之间,那么n-n1和n-n2必然一正一负,乘积小于0;若n等于其中一个值或在范围外,乘积则为非负数。多条件逻辑判断:直接用逻辑或连接两种区间情况,直观易懂:
if (n1 < n < n2) or (n2 < n < n1): # 执行你的逻辑
关于你尝试的range方案
你之前的写法可以调整为range(*sorted((n1, n2)))来传递参数,但这个方案有明显局限性:range仅支持整数范围,且是左闭右开区间,无法处理浮点数,也不能准确匹配边界值,因此不推荐用于通用的区间判断场景。
至于pandas的between()方法,确实如你所说,功能冗余,没必要为这个简单判断引入整个库。
内容的提问来源于stack exchange,提问作者SamTest
相关产品推荐
相关产品推荐

