📜  Python中的Array | 数组2(简介和功能)(1)

📅  最后修改于: 2023-12-03 15:04:34.572000             🧑  作者: Mango

Python中的Array | 数组2(简介和功能)

在Python中,数组(Array)是一种常见的数据结构,它能够同时存储多个元素,且这些元素可以是任何类型,包括数字、字符串、甚至是其他数组。数组在处理大量数据时非常高效,因为它能够快速地访问和修改元素,支持多种常见操作。

数组的基础操作
创建数组

创建数组的最简单方法是使用内置的 array 模块,首先需要导入它:

import array

然后通过传入数组类型和初始值来创建数组:

arr = array.array('i', [1, 2, 3, 4])

这里创建的数组类型是 i,表示整型。其他常用类型还有 f(浮点型)、d(双精度浮点型)、b(布尔型)、c(字符型)等。

访问数组元素

数组的元素可以通过下标来访问,下标从0开始计数:

print(arr[0])  # 输出1
修改数组元素

数组的元素可以通过下标来修改:

arr[0] = 0
print(arr[0])  # 输出0
获取数组长度

可以使用 len() 函数来获取数组的长度:

print(len(arr))  # 输出4
遍历数组元素

可以使用循环语句来遍历数组中的所有元素:

for num in arr:
    print(num)
添加元素到数组末尾

可以使用 append() 方法来添加元素到数组的末尾:

arr.append(5)
print(arr)  # 输出array('i', [0, 2, 3, 4, 5])
从数组中删除元素

可以使用 remove() 方法来从数组中删除指定的元素:

arr.remove(2)
print(arr)  # 输出array('i', [0, 3, 4, 5])
数组的高级操作
切片

切片是数组的高级操作之一,它可以返回数组的一个子集,包含指定的元素。切片语法包含开始下标、结束下标和步长,语法如下:

arr[start:end:step]

其中,start 表示开始下标(包含)、end 表示结束下标(不包含)、step 表示步长。如果不指定 start,则默认为0;如果不指定 end,则默认为数组长度;如果不指定 step,则默认为1。

以下示例展示了如何对数组进行切片操作:

arr = array.array('i', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

# 从下标2开始(包含)到下标5结束(不包含),步长为1
print(arr[2:5])  # 输出array('i', [2, 3, 4])

# 从下标0开始(包含)到下标6结束(不包含),步长为2
print(arr[0:6:2])  # 输出array('i', [0, 2, 4])

# 从下标4开始(包含)到最后结束,步长为1
print(arr[4:])  # 输出array('i', [4, 5, 6, 7, 8, 9])

# 从下标0开始(包含)到下标7结束(不包含),步长为1
print(arr[:7])  # 输出array('i', [0, 1, 2, 3, 4, 5, 6])
排序

可以使用内置的 sorted() 函数来对数组进行排序,该函数将返回一个新的已排序的数组,不会影响原数组:

arr = array.array('i', [3, 2, 1, 4])
sorted_arr = sorted(arr)
print(sorted_arr)  # 输出[1, 2, 3, 4]

如果希望对原数组进行排序,则可以使用 sort() 方法:

arr = array.array('i', [3, 2, 1, 4])
arr.sort()
print(arr)  # 输出array('i', [1, 2, 3, 4])
数组的转换

在Python中,可以将数组与其他常见的数据结构之间进行相互转换。比如,可以将数组转换为列表来进行一些特殊操作:

arr = array.array('i', [1, 2, 3])
list_arr = list(arr)
print(list_arr)  # 输出[1, 2, 3]

反之,可以将列表转换为数组:

list_arr = [1, 2, 3]
arr = array.array('i', list_arr)
print(arr)  # 输出array('i', [1, 2, 3])
总结

数组是Python中一种常见的数据结构,它能够同时存储多个元素,支持多种常见操作。数组的基础操作包括创建、访问、修改、获取长度、遍历、添加、删除,高级操作包括切片、排序、转换等。在处理大量数据时,使用数组可以提高效率,值得程序员们深入学习和掌握。