python中生成序列的方法汇总

本文介绍了Python中生成序列的三种方式:使用内置的`range`函数创建整数序列,`np.arange`函数生成包含小数的numpy数组,以及`np.linspace`函数通过指定序列长度来创建等差序列。这些函数在数值计算和数据分析中十分常用。
部署运行你感兴趣的模型镜像

python中生成序列的方法

range(start,end,step)函数

range函数可以生成制指定步长的整数递增(递减)序列,举个例子

list(range(0,10,2))
----------------------------------------------
[0, 2, 4, 6, 8]

注意:range函数中的startendstep参数均为整数,range函数不能生成任何带小数的序列。

np.arrange(start,end,step)函数

np.arrange函数生成的对象为numpy数组,解决了python自带的range函数不能生成小数序列的问题,同样举两个例子:

np.arange(0,10,2)
----------------------------------------------
array([0, 2, 4, 6, 8])
np.arange(-3.2,10.8,0.8)
----------------------------------------------
array([-3.2000000e+00, -2.4000000e+00, -1.6000000e+00, -8.0000000e-01,
       -8.8817842e-16,  8.0000000e-01,  1.6000000e+00,  2.4000000e+00,
        3.2000000e+00,  4.0000000e+00,  4.8000000e+00,  5.6000000e+00,
        6.4000000e+00,  7.2000000e+00,  8.0000000e+00,  8.8000000e+00,
        9.6000000e+00,  1.0400000e+01])

np.linspace(start, end, num=num_points)函数

np.linspace函数类似于matlab内的linspace,用于在线性空间中以均匀步长生成数字序列,同样支持浮点小数。但接受参数于arange()不同,np.linspace()不支持指定步长,而是指定生成序列的长度从而确定步长。同样,举几个例子:

np.linspace(1,10,5)
----------------------------------------------
array([ 1.  ,  3.25,  5.5 ,  7.75, 10.  ])
np.linspace(1.5,12.5,5)
----------------------------------------------
array([ 1.5 ,  4.25,  7.  ,  9.75, 12.5 ])

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

Python 中,"生成序列" 通常指的是创建一个有序的、可迭代的数据集合,例如列表(`list`)、元组(`tuple`)、字符串(`str`)、生成器(`generator`)等。根据不同的需求,可以使用多种方式生成序列。 --- ### ✅ 常见方式生成序列 #### 1. 使用 `range()` 函数生成数字序列 ```python # 生成从 0 到 9 的整数序列(不包括 10) seq = list(range(10)) print(seq) # 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ``` 也可以指定起始值和步长: ```python seq = list(range(1, 10, 2)) # 从1开始,到10(不含),步长为2 print(seq) # 输出: [1, 3, 5, 7, 9] ``` --- #### 2. 使用列表推导式生成序列 ```python # 生成 0 到 9 的平方序列 squares = [x**2 for x in range(10)] print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] ``` --- #### 3. 使用 `numpy` 生成数值序列(适用于科学计算) ```python import numpy as np # 生成等差数列,从0到1,共5个数 seq = np.linspace(0, 1, 5) print(seq) # 输出: [0. 0.25 0.5 0.75 1. ] # 生成从0到9的数组 seq = np.arange(10) print(seq) # 输出: [0 1 2 3 4 5 6 7 8 9] ``` --- #### 4. 使用生成器表达式(惰性求值) ```python # 生成一个生成器表达式 gen = (x**2 for x in range(10)) print(gen) # 输出: <generator object <genexpr> at 0x...> # 可以逐个取值 for num in gen: print(num) ``` --- #### 5. 从字符串生成字符序列 ```python s = "hello" chars = list(s) print(chars) # 输出: ['h', 'e', 'l', 'l', 'o'] ``` --- #### 6. 使用 `itertools` 模块生成复杂序列 ```python import itertools # 无限循环一个序列 cycle = itertools.cycle([1, 2, 3]) for i, val in enumerate(cycle): print(val) if i >= 5: break # 输出: 1, 2, 3, 1, 2, 3 ``` --- ### 总结:生成序列的常用方式 | 方法 | 描述 | 示例 | |------|------|------| | `range()` | 生成整数序列 | `range(10)` | | 列表推导式 | 快速构造列表 | `[x**2 for x in range(10)]` | | `numpy.arange()` / `linspace()` | 生成数值序列 | `np.arange(10)` | | 生成器表达式 | 惰性生成数据 | `(x**2 for x in range(10))` | | `itertools` | 生成复杂序列 | `itertools.cycle([1,2,3])` | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值