Python array模块

array模块用于支持python的数组操作,是C中数组的一层包装,一般不直接在python代码中使用,常用于和C代码集成时,常使用numpy操作数组。不同于列表可以持有任意类型对象,数组只支持同类型的元素。数组对象的常用方法(增删改查),大多和list有相同的方法签名。

创建数组

创建数组使用array.array(typecode[, initializer])构造方法,其中typecode指定待创建数组的元素类型,详情参照array。初始化器(initializer),可用于指定数组的初始化元素,支持列表,类字节对象以及合适的可迭代对象。

import array
import random

random.seed(0)
# 创建一个包含10个元素(-100~100)之间的有符号整型数组
arr = array.array('i', (random.randint(-100, 100) for _ in range(10)))

增删改查

# 增加数组元素(需为数组同类型元素)的方法有append(x),insert(i, x)及extend(iterable)
arr.append(123)
arr.insert(0, -123)
arr.extend(random.randint(60, 100) for _ in range(5))

# 删除数组元素有按索引删除pop([i])和按值删除remove(x)
val = arr.pop(0)
arr.remove(123)  # 待删除值不存在数组时,触发ValueError

# 修改数组元素即为对指定索引位元素重新赋值
arr[0] = 0

# 查看指定元素在数组的位置,可以使用index(x),查看在数组中的个数,使用count(x)
num = 0
num_pos = arr.index(num)  # num不存在数组中时,触发ValueError
num_occ = arr.count(num)

其他方法

  • buffer_info():返回数组在内存中的地址及数组长度,返回结果为(address, length)
  • byteswap():字节序交换(大小端转换);
  • frombytes(s):从字节序列扩展数组;
  • fromfile(f, n):从类文件对象中读取前n个元素扩展数组;
  • fromlist(list):从列表中扩展数组;
  • fromstring():同frombytes(s);
  • fromunicode(s):对于unicode类型数组,从unicode字符串扩展数组;
  • reverse():数组反转;
  • tobytes():转换成字节序列;
  • tofile(f):存储数组至文件;
  • tolist():数组转换为列表;
  • tostring():同tobytes()
  • tounicode():对于unicode类型数组,转换成unicode字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值