如何获取 Python 数组的长度

在 Python 中,数组(List)是一种非常常用的数据类型,它可以容纳多个元素并且支持多种操作。在进行数组操作时,有些情况下我们需要获取数组的长度以便进行一些操作。本文将详细介绍 Python 中获取数组长度的方法。

方法一:使用 len() 函数

在 Python 中,内置函数 len() 可以用于获取任意序列(序列指有顺序的一组数据)的长度。由于数组是一种序列,因此可以使用 len() 函数获取数组长度。示例如下:

arr = [1, 2, 3, 4, 5]
length = len(arr)
print(length)  # 输出 5

注意:len() 函数只能获取一维数组的长度。如果数组是多维的,需要使用其他方法来获取其长度。

方法二:使用 NumPy 库的 shape 属性

NumPy 是 Python 中常用的数学库,它提供了丰富的数组操作和方法。通过调用 NumPy 库的 shape 属性,可以获取多维数组的长度。示例如下:

import numpy as np
 
arr = np.array([[1, 2, 3], [4, 5, 6]])
shape = arr.shape

print(shape[0])   # 输出第一维度的长度 2
print(shape[1])   # 输出第二维度的长度 3

注意:使用 NumPy 库获取数组长度的方法需要先确保已安装了 NumPy 库。

方法三:计算一个空数组的内存大小并除以每个元素的大小

这种方法只适用于一维数组且所有元素大小相同的情况下,效率较高。具体操作步骤如下:

  1. 定义一个空数组并获取其内存大小,如下所示:
import sys
 
arr = []
size = sys.getsizeof(arr)
  1. 将 size 减去一个空数组所占的内存大小,得到数组容量(即可容纳的元素个数):
capacity = (size - sys.getsizeof([])) // sys.getsizeof(arr[0])
  1. 如果这时再向数组添加元素,长度就会逐渐增加,直到达到容量上限。因此,可以通过逐一添加元素的方式来获取数组长度:
arr.append(1)
length = len(arr)

注意事项:

  • 如果数组中存在空元素(None),使用 len() 函数获取的长度会包括这些空元素。
  • NumPy 中的数组对象 NDArray 的 shape 属性返回的是一个元组(tuple),使用时需要通过下标来获取各个维度的长度。
  • 第三种方法只适用于一维数组且元素大小相同的情况。对于多维数组或不同元素大小的情况,不适用。