Python 数组完全指南:创建、操作与高级用法专家详解
什么是 Python 数组?
Python 数组是同类型元素在连续内存中的集合,相比列表提供更高效存储和更快数值运算。内置 array 模块处理创建与操作。
何时使用 Python 数组
需存储大量同类型值并进行数值计算时,数组更省内存、访问更快,尤其适合大数据集。
创建数组语法
导入 array 模块并调用 array.array(typecode, initializer):
import array
my_array = array.array('i', [1, 2, 3])
数组类型码对照表
| 类型码 | Python 类型 | C 类型 | 最小字节数 |
|---|---|---|---|
| 'u' | Unicode 字符 | Py_UNICODE | 2 |
| 'b' | Int | Signed char | 1 |
| 'B' | Int | Unsigned char | 1 |
| 'h' | Int | Signed short | 2 |
| 'l' | Int | Signed long | 4 |
| 'L' | Int | Unsigned long | 4 |
| 'q' | Int | Signed long long | 8 |
| 'Q' | Int | Unsigned long long | 8 |
| 'H' | Int | Unsigned short | 2 |
| 'f' | Float | Float | 4 |
| 'd' | Float | Double | 8 |
| 'i' | Int | Signed int | 2 |
| 'I' | Int | Unsigned int | 2 |
访问元素
零基索引访问:
import array
balance = array.array('i', [300, 200, 100])
print(balance[1]) # 200
支持负索引与切片:
import array
arr = array.array('q', [3, 9, 6, 5, 20, 13, 19, 22, 30, 25])
print(arr[1:4]) # array('q', [9, 6, 5])
print(arr[7:10]) # array('q', [22, 30, 25])
插入元素
insert(index, value) 在指定位置插入:
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance) # array('i', [300, 200, 150, 100])
修改元素
数组可变,直接赋值:
import array
arr = array.array('b', [3, 6, 4, 8, 10])
arr[0] = 99
print(arr) # array('b', [99, 6, 4, 8, 10])
支持拼接:
import array
first = array.array('b', [4, 6, 8])
second = array.array('b', [9, 12, 15])
combined = first + second
print(combined) # array('b', [4, 6, 8, 9, 12, 15])
删除元素
Pop 按索引移除:
import array
arr = array.array('b', [20, 25, 30])
arr.pop(2)
print(arr) # array('b', [20, 25])
Del 按位置删除:
import array
arr = array.array('b', [10, 4, 5, 5, 7])
del arr[4]
print(arr) # array('b', [10, 4, 5, 5])
Remove 删除首个匹配值:
import array
arr = array.array('b', [2, 3, 4])
arr.remove(3)
print(arr) # array('b', [2, 4])
搜索与索引
index(value) 查找值的索引:
import array
arr = array.array('b', [2, 3, 4, 5, 6])
print(arr.index(3)) # 1
反转数组
原地反转:
import array
arr = array.array('b', [1, 2, 3])
arr.reverse()
print(arr) # array('b', [3, 2, 1])
转 Unicode 字符串
仅 'u' 类型数组支持 tounicode():
from array import array
p = array('u', [u'\u0050', u'\u0059', u'\u0054', u'\u0048', u'\u004F', u'\u004E'])
print(p) # array('u', 'PYTHON')
print(p.tounicode()) # PYTHON
统计元素出现次数
count(x) 统计出现次数:
import array
arr = array.array('b', [2, 3, 5, 4, 3, 3, 3])
print(arr.count(3)) # 4
遍历数组
for 循环迭代:
import array
arr = array.array('i', [300, 200, 100])
for x in arr:
print(x)
总结
- Python 数组存单一类型元素,由类型码定义。
- 通过
array模块创建,比列表更省内存。 - 用索引、切片、内置方法(
insert、remove、pop、reverse)操作数据。 - 支持拼接、计数、搜索。
- 仅
'u'数组可转 Unicode 字符串。
Python
- C++ 数组完全指南:声明、初始化、多维数组与指针技巧
- C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
- C# 集合实战教程:ArrayList、Stack、Queue、Hashtable 等核心类型全解析
- Python str.count() 完全指南:统计字符与子串出现次数实战
- Python format() 字符串格式化完全指南:占位符、格式化规范、类与字典应用
- Python 字符串 find() 方法完全指南:语法、参数、替代方案与计数技巧
- 精通 Python Lambda 函数:实用示例与最佳实践
- Python round() 函数详解与实战示例
- 精通 Python map() 函数:语法、示例与最佳实践
- Python timeit():精准测量代码执行时间与实战示例
- 理解 Python type() 与 isinstance():实战示例详解
- Python list.count() 专家指南:语法、示例与性能解析