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

Python如何判断给定数字是否在列表任一元素的±10范围内?

Python实现方案

首先先修正你给出的列表语法问题:原列表中100、30、400三个元素之间缺少英文逗号,修正后的正确列表定义为:
mylist = [100, 30, 400, 340, 230, 160, 25]

最简实现代码

使用Python内置的any()函数实现,支持短路求值,性能最优:

mylist = [100, 30, 400, 340, 230, 160, 25]
target = 239

# 直接按需求判断
result = any(num - 10 <= target <= num + 10 for num in mylist)
print(result)

运行上述代码输出结果为True,和你给出的示例预期一致。

可复用函数封装

如果需要灵活调整偏移值、多次调用,可以封装为独立函数:

def check_in_offset_range(num_list: list[int], target: int, offset: int = 10) -> bool:
    """
    判断target是否落在num_list中任意元素的±offset区间内
    """
    return any(num - offset <= target <= num + offset for num in num_list)

# 测试用例
mylist = [100, 30, 400, 340, 230, 160, 25]
print(check_in_offset_range(mylist, 239)) # 测试239,输出True
print(check_in_offset_range(mylist, 243)) # 测试243,输出False

逻辑说明

  • any()函数会遍历传入的可迭代对象,只要遇到第一个True的结果就会立即终止遍历返回True,不需要遍历整个列表,性能优于手动写全量循环
  • 生成器表达式num - 10 <= target <= num + 10 for num in mylist会逐个校验列表元素和目标值的区间关系,完全匹配你的需求规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:00:00