array: 类似于c++中的vector,只能存储一种类型的元素,必须在建立时确认成员类型。
如果存储的元素为单一类型时,可使用array,省去了类型检查的麻烦。
Type code C Type Minimum size in bytes
'c' character 1
'b' signed integer 1
'B' unsigned integer 1
'u' Unicode character 2
'h' signed integer 2
'H' unsigned integer 2
'i' signed integer 2
'I' unsigned integer 2
'l' signed integer 4
'L' unsigned integer 4
'f' floating point 4
'd' floating point 8
构造函数,initializer用于初始化数组中的值的可迭代类型,其中的元素为同一类型
array(typecode, [initializer])
import array
a = array.array("i", range(2))
# a.itemsize=a所占的byte大小, 4 = 2 * size(int) = 2 * 2
a.typecode, a.itemsize
('i', 4)
# 将3添加到数组a的末尾
a.append(3)
# 返回存储a的存地址和长度
a.buffer_info()
(177633360L, 3)
# 交换字节顺序, 仅支持整形值
a.byteswap()
a
a.byteswap()
a
array('i', [0, 16777216, 50331648])
array('i', [0, 1, 3])
# a中出现x的次数
a.count(0), a.count(2)
(1, 0)
# a.fromfile(f, n), 从文件对象f中读取n个对象, 并添加到数组末尾
# 同理, a.fromlist(l),将l中的元素添加到a的末尾
a.fromlist([2,])
a
array('i', [0, 1, 3, 2])
a.index(x), 返回x在a中的位置索引,如果未找到,则抛出异常
a.insert(i, x), 在位置i插入x
a.pop(i = -1), 删除第i个元素并返回, 默认为最后一个元素
a.remove(x), 从数组中删除第一个x, 如果未找到抛出异常
a.reverse(), 反转数组的顺序
a.tofile(f), 将a写入文件对象f中
a.tolist(), 将数组转化为普通的list
a.tostring(), 将数组a转换为二进制的字符串