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

Python如何展开列表指定区间内所有值且不丢失末尾数值

问题描述

给定由两个整数构成的闭区间定义列表,例如 range_arr = [-3, 2],需要生成包含区间内所有整数值的列表,预期输出为 [-3, -2, -1, 0, 1, 2]。
原有实现存在两个问题,会导致输出丢失区间右端点数值,原代码如下:

# 注意:不建议用range作为变量名,会覆盖Python内置的range函数
range = [-3,2]
new_range = []
for i in range(*range):
   new_range.append(_) 

print(new_range)
# 运行结果:[-3, -2, -1, 0, 1],缺失右端点2

问题原因:

  1. 循环迭代变量为i,但append时传入的是_,存在变量使用错误;
  2. Python内置range()生成的是左闭右开序列,即包含起始值、不包含传入的终止值,直接传入原区间的右端点自然不会把该值纳入序列。
简洁实现方案

不需要在循环结束后手动追加末尾值,利用range本身的特性就可以写出紧凑、可读性强的实现:

  • 一行实现版本:直接将区间右端点+1作为range的终止参数,自动覆盖闭区间所有整数
range_arr = [-3, 2]
new_range = list(range(range_arr[0], range_arr[1] + 1))
print(new_range)
# 输出:[-3, -2, -1, 0, 1, 2]
  • 可读性更好的解包版本:适合区间参数后续可能扩展(比如加步长)的场景
range_arr = [-3, 2]
start, end = range_arr
new_range = list(range(start, end + 1))

补充说明:如果区间还定义了步长,只需要在解包时把步长也取出来,终止值保持+1的逻辑即可,不需要额外调整循环逻辑,比手动追加元素的写法鲁棒性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:39:15