Python一维数组创建有三类方式:列表适合通用场景,NumPy适用于数值计算,array模块节省内存;赋值时列表索引安全、NumPy支持视图切片、array严格索引检查。
Python里一维数组的创建和赋值看似简单,但实际用法灵活、场景多样。关键不在于“能不能做”,而在于“哪种方式更贴合当前需求”——比如是快速初始化、动态填充、类型严格控制,还是后续要参与数值计算。
最轻量、最常用的方式,适合通用逻辑、小规模数据或原型开发:
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 是首选。它支持向量化操作,且内存连续、类型明确:
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 比 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)+ 1,需用循环或 map不同结构对“赋值”的语义略有差异,容易踩坑:
arr[2] = 99 直接生效,不会报错(只要下标在范围内)arr[1:4] = [-1, -2, -3] 或 arr[::2] = 0(所有偶数位设为 0)array 赋超出范围的索引会报 IndexError,行为更接近传统数组