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

如何在Python中快速生成连续与非连续数字序列?

Python中生成混合连续/非连续数字序列的简便方法

当然有,不用循环也能实现类似R的简洁写法,以下是几种常用方案:

  • 列表拼接法:逻辑和R的写法最接近,直接把连续区间转成列表后和单个元素列表相加
numbers = list(range(1, 6)) + [8] + [12] + list(range(15, 20))
print(numbers)
# 输出: [1, 2, 3, 4, 5, 8, 12, 15, 16, 17, 18, 19]

注意:Python的range是左闭右开区间,所以生成1-5的连续数需要写range(1,6),15-19对应range(15,20)。

  • itertools.chain拼接:适合处理多个区间/元素,避免创建中间列表,效率更高
from itertools import chain

numbers = list(chain(range(1, 6), [8], [12], range(15, 20)))
print(numbers)
# 输出: [1, 2, 3, 4, 5, 8, 12, 15, 16, 17, 18, 19]
  • numpy拼接(适合数值计算场景):如果后续要做数值运算,用numpy的concatenate更方便
import numpy as np

numbers = np.concatenate([np.arange(1, 6), [8], [12], np.arange(15, 20)]).tolist()
print(numbers)
# 输出: [1, 2, 3, 4, 5, 8, 12, 15, 16, 17, 18, 19]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:04:58