数组array.array
比如我们要存放100万个浮点数的话,使用数组就会更高效一点,因为数组背后存储是不是float对象,而是数字对应的机器翻译,也就是字节表述。
数组支持所有可变序列的操作,比如.pop .insert .extend。另外还支持从文件读取和写入更快的方法:.fromfile和.tofile frombytes和tobytes。
创建数组,第一个参数需要类型码,用来表示C语音底层如何存放的数据类型,比如arra('b'),B类型码就是signed char 只能存放一个字节大小的整数,范围是-128到127。这样好处是在序列很大的时候,能够节省内存。
类型码对照表:
存放1000w个随机浮点数的数组,存入文件,再从文件中取出:
import array
import random
# 类型码d表示 双精度浮点数
random_array = array.array('d', (random.random() for _ in range(10 ** 7)))
print(random_array[0], random_array[-1])
# 以二进制方式写入到文件
with open('array.txt', 'wb') as f:
random_array.tofile(f)
# 从文件中读取二进制
new_random_array = array.array('d')
with open('ar