天天看点

42 Python array

array: 类似于c++中的vector,只能存储一种类型的元素,必须在建立时确认成员类型。

如果存储的元素为单一类型时,可使用array,省去了类型检查的麻烦。

Type code       C Type             Minimum size in bytes
    'c'         character          
    'b'         signed integer     
    'B'         unsigned integer   
    'u'         Unicode character  
    'h'         signed integer     
    'H'         unsigned integer   
    'i'         signed integer     
    'I'         unsigned integer   
    'l'         signed integer     
    'L'         unsigned integer   
    'f'         floating point     
    'd'         floating point     
           

构造函数,initializer用于初始化数组中的值的可迭代类型,其中的元素为同一类型

array(typecode, [initializer])
           
import array
a = array.array("i", range())
# a.itemsize=a所占的byte大小, 4 = 2 * size(int) = 2 * 2
a.typecode, a.itemsize
           
('i', 4)
           
# 将3添加到数组a的末尾
a.append()
# 返回存储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(), a.count()
           
(1, 0)
           
# a.fromfile(f, n), 从文件对象f中读取n个对象, 并添加到数组末尾
# 同理, a.fromlist(l),将l中的元素添加到a的末尾
a.fromlist([,])
a
           
array('i', [0, 1, 3, 2])
           
a.index(x), 返回x在a中的位置索引,如果未找到,则抛出异常
a.insert(i, x), 在位置i插入x
a.pop(i = -), 删除第i个元素并返回, 默认为最后一个元素
a.remove(x), 从数组中删除第一个x, 如果未找到抛出异常
a.reverse(), 反转数组的顺序
a.tofile(f), 将a写入文件对象f中
a.tolist(), 将数组转化为普通的list
a.tostring(), 将数组a转换为二进制的字符串