Python如何基于给定区间上下限生成n个连续子区间数值列表
Python 生成连续数值区间实现方案
实现思路
- 先从输入元组中解包得到区间下限
inf、区间上限sup、待生成区间总数n - 计算单个区间的长度:
step = (sup - inf) / n - 遍历生成对应区间,保证前一个区间的右端点等于后一个区间的左端点,实现区间连续无间隔
代码实现
基础写法
def generate_continuous_intervals(J): inf, sup, n = J # 校验参数合法性 if not isinstance(n, int) or n <= 0: raise ValueError("区间数量n必须为正整数") if sup <= inf: raise ValueError("区间上限必须大于下限") step = (sup - inf) / n res = [] for i in range(n): left = inf + i * step right = inf + (i + 1) * step res.append([left, right]) return res
简洁列表推导式写法
def generate_continuous_intervals(J): inf, sup, n = J if not isinstance(n, int) or n <= 0 or sup <= inf: raise ValueError("参数非法,请确认n为正整数且区间上限大于下限") step = (sup - inf) / n return [[inf + i*step, inf + (i+1)*step] for i in range(n)]
效果测试
输入示例:
J = (-7, 9.5, 4) print(generate_continuous_intervals(J))
输出结果:[[-7, -2.875], [-2.875, 1.25], [1.25, 5.375], [5.375, 9.5]],和预期完全一致。
注意事项
如果对浮点数精度有要求,可以在生成左右端点时用round()函数指定保留小数位数,比如round(left, 4)即可保留4位小数。
内容的提问来源于stack exchange,提问作者Zhuānjiā
相关产品推荐
相关产品推荐

