Python中数组与C语言对比 Python

在 Python 中,没有像 C 语言 int arr[5]; 这样直接声明固定大小、固定类型数组的语法。Python 的内置序列类型(如 list、tuple)都是动态的:列表可以随时增删元素,且元素类型可以混合。 不过,根据你的需求,有多种方式可以模拟或实现类似 C 数组的行为: --- 1. 使用列表 + 预分配大小(最常用) 虽然列表是动态的,但你可以预先创建一个指定长度、初始值相同的列表:
PYTHON
# 创建长度为5的整数列表,所有元素初始为0
arr = [0] * 5
print(arr)  # [0, 0, 0, 0, 0]

# 修改某个元素
arr[2] = 99
print(arr)  # [0, 0, 99, 0, 0]
⚠️ 注意:这种方式的列表依然可以 append() 增加长度,并非真正固定大小。如果你需要“固定长度”的约束,需要自己通过代码保证(例如不调用 append/pop)。 --- 2. 使用 array 模块(类型固定,内存紧凑) array 模块提供类型化的数组,元素类型必须一致,内存占用比列表小,但仍然是动态的(可以增删元素)。
PYTHON
from array import array

# 创建类型为 'i'(有符号整数)、长度为5的数组,初始值全为0
arr = array('i', [0]) * 5   # 或者 array('i', [0, 0, 0, 0, 0])
print(arr)  # array('i', [0, 0, 0, 0, 0])

# 可以修改元素
arr[1] = 42
print(arr)  # array('i', [0, 42, 0, 0, 0])

# 但依然可以动态增加(不推荐,如果需要固定大小需自行控制)
arr.append(100)
常用类型码:'i'(signed int)、'f'(float)、'd'(double) 等。 --- 3. 使用 NumPy(真正的固定大小多维数组) 如果你进行科学计算或需要真正固定大小、高性能的数值数组,推荐使用 NumPy:
PYTHON
import numpy as np

# 创建长度为5的整数数组,所有元素为0
arr = np.zeros(5, dtype=int)
print(arr)  # [0 0 0 0 0]

# 修改元素
arr[2] = 99

# 试图 append 会报错(NumPy 数组大小固定)
# arr.append(100)  # AttributeError
NumPy 数组在创建后大小不可变(除非显式创建新数组),更接近 C 数组的行为,且支持向量化运算。 --- 对比总结 方式 类型固定 大小固定 内存效率 语法接近 C 数组 [0]*5 列表 ❌ ❌ 一般 ❌ array('i', [0])*5 ✅ ❌ 高 一般 NumPy np.zeros() ✅ ✅ 高 ✅(需第三方库) 结论: · 日常简单场景,用 [0]*5 预分配列表即可。 · 需要类型固定、节省内存且不关心动态增删,用 array。 · 需要真正固定大小、数学运算或多维数组,用 NumPy。 · Python 语言本身没有提供类似 int arr[5]; 的语法,因为它的设计哲学是动态、简洁。
← 返回列表

评论 (0)

登录后可以发表评论

立即登录
💬

还没有评论,快来发表第一条评论吧!