一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

一维数组的创建与赋值:实战中的常用技巧

时间:2026-06-20 09:57:04 编辑:袖梨 来源:一聚教程网

Python一维数组创建有三类方式:列表适合通用场景,NumPy适用于数值计算,array模块节省内存;赋值时列表索引安全、NumPy支持视图切片、array严格索引检查。

Python里一维数组的创建和赋值看似简单,但实际用法灵活、场景多样。关键不在于“能不能做”,而在于“哪种方式更贴合当前需求”——比如是快速初始化、动态填充、类型严格控制,还是后续要参与数值计算。

用列表(list)快速上手

最轻量、最常用的方式,适合通用逻辑、小规模数据或原型开发:

  • 直接写死: arr = [1, 5, -2, 0, 9] —— 初始化即赋值,可读性强
  • 批量填零: arr = [0] * 10 —— 创建长度为10的全零列表(注意:只适用于不可变元素)
  • 推导式生成: arr = [i**2 for i in range(6)][0, 1, 4, 9, 16, 25]
  • 循环追加: arr = [],再用 for i in range(n): arr.append(value) —— 适合逻辑复杂、需条件判断的逐个赋值

用 NumPy 构建高效数值数组

当涉及数学运算、大数据量或与其他科学计算库协作时,NumPy 是首选。它支持向量化操作,且内存连续、类型明确:

  • 从列表转换:import numpy as np; arr = np.array([1, 2, 3])
  • 预设值初始化:np.zeros(5)np.ones(4, dtype=int)np.full(3, 7.5)
  • 等差序列:np.arange(2, 12, 2)[2 4 6 8 10]np.linspace(0, 1, 5)[0. 0.25 0.5 0.75 1.]
  • 函数生成:np.fromfunction(lambda i: i*2 + 1, (5,), dtype=int)[1 3 5 7 9]

用 array 模块节省内存

若处理大量同类型数值(如传感器采样点),且对内存敏感,标准库 array 比 list 更紧凑,比 NumPy 更轻量:

  • 整数数组:from array import array; arr = array('i', [1, 2, 3, 4])('i' 表示有符号 int)
  • 浮点数组:arr = array('d', [1.1, 2.2, 3.3])('d' 表示 double)
  • 注意:不支持广播运算,也不能像 NumPy 那样直接 + 1,需用循环或 map

赋值与修改的关键细节

不同结构对“赋值”的语义略有差异,容易踩坑:

  • 列表索引赋值安全:arr[2] = 99 直接生效,不会报错(只要下标在范围内)
  • NumPy 数组支持切片赋值:arr[1:4] = [-1, -2, -3]arr[::2] = 0(所有偶数位设为 0)
  • NumPy 切片是视图(view),修改会影响原数组;列表切片是副本,修改不影响原列表
  • 尝试给 array 赋超出范围的索引会报 IndexError,行为更接近传统数组

热门栏目