一学就废|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
以下是第一个参数可定义的类型码:
将元素添加到数组
元素可以通过使用内置的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