python的数组模块——array

Posted on 2021-11-13 10:21  foghorn  阅读(990)  评论(0编辑  收藏  举报

array概述

虽然python列表既灵活又简单,但是面对各类需求时,我们可能有更好的选择。比如,要存放1000万个浮点数的话,数组(array)的效率要高得多,因为数组在背后存的并不是float对象,而是数字的机器翻译,也就是字节表述。如果我们需要一个只包含数字的列表,那么array.array比list更高效。数组支持所有跟可变序列有关的操作,包括.pop、.insert、和.extend。另外,数组还提供从文件读取和存入文件的方法,如.frombytes和.tofile。

array的创建方式

arr_name = array.array(typecode[, initializer])
在创建python array时,需要指定一个类型码,这个类型码用来表示底层的C语言应该存放怎样的数据类型。比如b类型表示有符号的字符(signed char),因此array('b')创建出的数组就只能存放一个字节大小的整数,范围从-128到127。

操作演示

创建array

from array import array

arr = array('i', [10, 20, 30, 40, 50])
for x in arr:
    print(x)

输出:
10
20
30
40
50

上面代码创建了一个大小为2个字节的带符号整数数组,并将其输出。

其他类型码

Type code C Type Python Type Minimum size in bytes
'b' signed char int 1
'B' unsigned char int 1
'h' signed short int 2
'H' unsigned short int 2
'i' signed int int 2
'I' unsigned int int 2
'l'(lower 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

访问数组

from array import array

arr = array('i', [10, 20, 30, 40, 50])

print(arr[0])
print(arr[1])

输出:
10
20

插入操作

from array import array

arr = array('i', [10, 20, 30, 40, 50])

arr.insert(1, 60)
for x in arr:
    print(x)

输出:
10
60
20
30
40
50

删除元素

from array import array

arr = array('i', [10, 20, 30, 40, 50])

arr.remove(40)
for x in arr:
    print(x)

输出:
10
20
30
50

查找元素的索引

from array import array

arr = array('i', [10, 20, 30, 40, 50])

print(arr.index(40))

输出:
3

参考

Copyright © 2024 foghorn
Powered by .NET 9.0 on Kubernetes