array -- 数值数组│Python标准库

前情提示: 测试代码中,右尖括号(>)表示命令行中输入的命令; 单独一行并以井字符(#)开头的为输出内容; 库的导入仅在本文的第一个测试代码中展现,其他代码块均省略库的导入代码。

  • 系统类型: Windows 10
  • python 版本: Python 3.9.0

array 模块定义了一种对象类型,可以紧凑的表示以 字符整数浮点数 等基本类型为元素组成的数组。array 模块中定义的数组属于序列类型,其行为也与列表类型非常相似,但是数组中的元素的数据类型是受到限制的,只能设置在初始化时指定的某一种类型。

++PS: 数组与列表、元组等组合数据类型相似,可以由多个值组成。出于个人习惯,小编把这些值称为元素,也就是说,列表、元组等可以是由多个元素组成的,在本文中也将组成数组的那些值也称为元素。++

array 模块在使用时,需要先实例化一个数组对象,然后再进行下一步操作:

array.array(typecode[, initializer])
'''
参数:
    typecode: 指定当前数组所能接受的元素数据类型
    initializer: 可选参数, 数组初始化时添加的元素, 必须是可迭代对象, 元素的数据类型受参数 typecode 的限制
'''

typecode 参数的值是一个字符,这个字符被称为类型码,其代表一种类型限制,所有的类型码可以使用 array.typecodes 查看:

import array

print(array.typecodes)
# bBuhHiIlLqQfd

在上述的例子中,返回值中的每个字符都是一个类型码,那么这些类型码都是什么意思呢?

类型码        C 类型        Python 类型     以字节表示的最小尺寸

 'b'       signed char          int                 1

 'B'      unsigned char         int                 1

 'u'         wchar_t         Unicode 字符           2

 'h'       signed short         int                 2

 'H'      unsigned short        int                 2

 'i'        signed int          int                 2

 'I'       unsigned int         int                 2

 'l'        signed long         int                 4

 'L'       unsigned long        int                 4

 'q'      signed long long      int                 8

 'Q'     unsigned long long     int                 8

 'f'          float            float                4

 'd'          double           float                8

接下来就可以初始化一个数组了:

test = array.array('u', 'ABC')
print(test)
# array('u', 'ABC')

初始化的元素类型一定要和设置的类型码一致,否则将报错:

test = array.array('b', 'ABC')
# TypeError: cannot use a str to initialize an array with typecode 'b'

array 模块的大多数内容都在初始化后的数组对象上展开的,那么下面将根据功能进行分组介绍。

属性
  • array.typecode: 获取数组的类型码
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值