一学就废|Python基础碎片,数组Array

        在 Python 中,数组是存储在连续内存元素的集合,这个想法是将多个相同类型的元素存储在一起。与 Python 列表(List可以存储混合类型的元素)不同,Python 中的Array数组必须具有相同类型的所有元素。只有同质元素使的内存使用效率更高。

数组创建

        数组可以通过导入数组模块来创建。array(data_type,value_list)用于在 Python 中创建数组,其参数中指定了数据类型值列表。在下面的代码中,创建了2个数组:一个整数和一个双精度的类型,然后它将每个数组的内容打印到控制台。

import array as arr
a = arr.array('i', [1, 2, 3])
print("新建的数组 : ", end=" ")
for i in range(0, 3):
    print(a[i], end=" ")
print()

b = arr.array('d', [2.5, 3.2, 3.3])
print("\n新建的数组 : ", end=" ")
for i in range(0, 3):
    print(b[i], end=" ")


新建的数组 :  1 2 3 

新建的数组 :  2.5 3.2 3.3 

         以下是第一个参数可定义的类型码:

类型码
C 语言类型Python 类型最小字节数备注
'b'signed charint1 
'B'unsigned charint1 
'u'wchar_tUnicode 字符2-1
'w'Py_UCS4Unicode 字符4 
'h'signed shortint2 
'H'unsigned shortint2 
'i'signed intint2 
'I'unsigned intint2 
'l'signed longint4 
'L'unsigned longint4 
'q'signed long longint8 
'Q'unsigned long longint8 
'f'floatfloat4 
'd'doublefloat8 


 

 

 

 

将元素添加到数组

        元素可以通过使用内置的insert()函数添加到数组中。根据需求,可以在数组的开头、结尾或任何给定索引处添加一个新元素。append()也用于在 Python 数组的末尾添加元素。

import array as arr

# Integer array example
a = arr.array('i', [1, 2, 3])
print("插入元素前的整数数组:", *a)

a.insert(1, 4)  # Insert 4 at index 1
print("插入元素后的整数数组:", *a)

# Floating-point array example
b = arr.array('d', [2.5, 3.2, 3.3])
print("插入元素前的浮点型数组:", *b)

b.append(4.4)  # Append 4.4 to the array
print("插入元素后的浮点型数组:", *b)

插入元素前的整数数组 :  1 2 3 
插入元素后的整数数组 :  1 4 2 3 
插入元素前的浮点型数组 :  2.5 3.2 3.3 
插入元素后的浮点型数组 :  2.5 3.2 3.3 4.4 

访问数组元素

        在 Python 中,使用索引运算符 [ ] 来访问数组中的元素,索引必须是整数。

        如下,代码首先展示了如何导入数组和使用索引来访问数组中的元素。a [0] 表达式访问数组 a 的第一个元素,即 1。a [3] 表达式访问数组 a 的第四个元素,即 4。类似地,b [1] 表达式访问数组 b 的第二个元素,即 3.2,b [2] 表达式访问数组 b 的第三个元素,即 3.3。

import array as arr
a = arr.array('i', [1, 2, 3, 4, 5, 6])

print("访问的元素值为: ", a[0])
print("访问的元素值为: ", a[3])

b = arr.array('d', [2.5, 3.2, 3.3])
print("访问的元素值为: ", b[1])
print("访问的元素值为: ", b[2])

访问的元素值为:  1
访问的元素值为:  4
访问的元素值为:  3.2
访问的元素值为:  3.3

删除数组元素

         可以使用内置的remove()函数删除元素,但如果元素在集合中不存在,则会出现错误。Remove()方法一次只删除一个元素,要删除元素范围,需使用迭代器。pop()函数也可用于从数组中删除并返回一个元素,但默认情况下它只删除数组的最后一个元素,要从数组的特定位置删除元素,元素的索引作为参数传递给 pop()方法。
        注意 :remove()方法只会删除搜索到的第一次出现的元素。以下代码展示了如何导入数组,创建、打印、删除元素和访问数组的元素。首先导入数组模块,创建一个整数数组,打印数组。然后从数组中删除一个元素并打印修改后的数组。最后,它从数组中删除所有出现的特定元素并打印更新的数组。

import array
arr = array.array('i', [1, 2, 3, 1, 5])
print("新建的数组为 : ", end="")
for i in range(0, 5):
    print(arr[i], end=" ")

print("\r")
print("删除的元素为: ", end="")
print(arr.pop(2))
print("pop删除元素后的数组 : ", end="")
for i in range(0, 4):
    print(arr[i], end=" ")

print("\r")
arr.remove(1)
print("remove删除元素后的数组 : ", end="")
for i in range(0, 3):
    print(arr[i], end=" ")

新建的数组为 : 1 2 3 1 5 
删除的元素为: 3
pop删除元素后的数组 : 1 2 1 5 
remove删除元素后的数组 : 2 1 5 

数组的切片

        有多种方法可以打印包含所有元素的整个数组,但是要从数组中打印特定范围的元素,我们使用 切片操作。使用冒号(:)对数组执行切片操作。要从开始到指定范围打印元素,使用 [: Index],从最后开始使用 [:-Index] 打印元素,从指定索引打印元素,直到最后使用 [Index:],要打印指定范围内的元素,使用 [Start Index:End Index],使用切片打印整个数组,使用 [:]。此外,要以相反的顺序打印整个数组,使用 [::-1]。

import array as arr
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

a = arr.array('i', l)
print("原始数组为: ")
for i in (a):
    print(i, end=" ")
Sliced_array = a[3:8]
print("\n获取地~第7个元素(索引范围3-8): ")
print(Sliced_array)

Sliced_array = a[5:]
print("\n获取从下标为5的开始到最后:")
print(Sliced_array)

Sliced_array = a[:]
print("\n打印整个数组: ")
print(Sliced_array)

原始数组为: 
1 2 3 4 5 6 7 8 9 10 

获取地~第7个元素(索引范围3-8): 
array('i', [4, 5, 6, 7, 8])

获取从下标为5的开始到最后: 
array('i', [6, 7, 8, 9, 10])

打印整个数组
array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

在数组中搜索元素

        使用内置的index()方法在数组中搜索指定元素。此函数返回元素值第一次出现的索引。以下代码演示了如何在创建数组,打印其元素,并查找特定元素的索引。导入数组模块,创建一个整数数组,使用for循环打印数组,然后使用index()方法查找第一次出现的整数2和1的索引。

import array
arr = array.array('i', [1, 2, 3, 1, 2, 5])
print("新建的数组为 : ", end="")
for i in range(0, 6):
    print(arr[i], end=" ")

print("\r")
print("第一次出现的元素2所在的索引 : ", end="")
print(arr.index(2))
print("第一次出现的元素1所在的索引 : ", end="")
print(arr.index(1))

新建的数组为 : 1 2 3 1 2 5 
第一次出现的元素2所在的索引 : 1
第一次出现的元素1所在的索引 : 0

更新数组中的元素

        更新数组中的元素,我们只需将一个新值重新分配给我们想要更新的索引。以下代码说明了使用索引修改数组中元素的功能。导入数组模块,创建一个整数数组,并打印初始数组。然后,它在特定索引处修改数组的两个元素并打印更新后的数组。

import array
arr = array.array('i', [1, 2, 3, 1, 2, 5])
print("更新前的数组 : ", end="")
for i in range(0, 6):
    print(arr[i], end=" ")

print("\r")
arr[2] = 6
print("更新后的数组 : ", end="")
for i in range(0, 6):
    print(arr[i], end=" ")
print()

arr[4] = 8
print("更新后的数组 : ", end="")
for i in range(0, 6):
    print(arr[i], end=" ")

更新前的数组 : 1 2 3 1 2 5 
更新后的数组 : 1 2 6 1 2 5 
更新后的数组 : 1 2 6 1 8 5 

元素计数

        为了计数数组中的元素,我们需要使用 count ()方法。以下代码演示了如何确定数组中指定元素的个数。首先导入数组模块,创建一个整数数组,并使用 count(0方法计算数字 2 的出现次数,最后打印结果。

import array
my_array = array.array('i', [1, 2, 3, 4, 2, 5, 2])
count = my_array.count(2)
print("元素2出现的次数:", count)

元素2出现的次数: 3

反转数组中的元素

        使用reverse()方法。以下给出的代码演示了使用reverse()方法反转数组中元素顺序。首先导入数组模块,创建一个整数数组,打印原始数组,使用everse()反转元素的顺序,然后打印反转的数组。

import array
my_array = array.array('i', [1, 2, 3, 4, 5])
print("原始数组:", *my_array)
my_array.reverse()
print("反转后的数组:", *my_array)

原始数组: 1 2 3 4 5
反转后的数组: 5 4 3 2 1

数组扩展

        数组用于在单个变量中存储多个相同数据类型的元素。extend()函数仅用于将另一个数组的所有元素追加到一个数组的末尾。

        以下代码演示了扩展数组的用法。首先导入数组模块,创建一个整数数组,在扩展之前打印数组,使用extend()方法扩展数组,最后打印扩展数组。

import array as arr 
a = arr.array('i', [1, 2, 3,4,5])
print("扩展前的数组  : ", end =" ")
for i in range (0, 5): 
  
    print (a[i], end =" ") 
    
print()
a.extend([6,7,8,9,10])
print("\n扩展后的数组 :",end=" ")

for i in range(0,10):  
    print(a[i],end=" ") 
    
print()

扩展前的数组  :  1 2 3 4 5 

扩展后的数组 : 1 2 3 4 5 6 7 8 9 10 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码路刺客

您的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值