📜  Python列表 VS 数组 VS 元组(1)

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

Python列表 VS 数组 VS 元组

介绍

在Python中,列表、数组和元组都是可变序列,它们都可以存储任意数据类型的元素,包括数字、字符、字符串、列表、元组、等等。虽然它们具有相似的性质,但是它们各有自己的特点和适用场景。

列表

列表是Python中最常用的序列类型之一,它是一种动态数组,可以随意添加、删除和修改其中的元素。可以使用方括号([])来创建一个列表,列表中的元素可以使用逗号分隔。

list1 = []              # 空列表
list2 = [1, 2, 3]       # 包含三个整数的列表
list3 = ["apple", "banana", "orange"] # 包含三个字符串的列表
常用方法
  • append(): 在列表末尾添加一个元素。
  • insert(): 在列表中的任意位置插入一个元素。
  • pop(): 删除列表末尾的元素。
  • remove(): 根据元素的值删除列表中的元素。
  • sort(): 按照特定的顺序对列表中的元素进行排序。
  • reverse(): 反转列表中的元素。
# 例如:

fruits = ["apple", "banana", "orange"]
fruits.append("pear")           # 添加元素
fruits.insert(1, "grape")       # 在第二个位置插入一个元素
fruits.pop()                    # 删除最后一个元素
fruits.remove("banana")         # 删除指定元素
fruits.sort()                   # 排序
fruits.reverse()                # 反转
适用场景

由于列表能够动态添加、删除和修改其中的元素,因此它非常适合存储数量不确定的元素。比如,在程序中需要不断添加和删除元素时,可以使用列表。

数组

数组也是一种序列类型,和列表不同的是,数组中的元素必须为同一种数据类型。在Python中,数组需要通过导入array模块才能使用。可以使用array()方法创建一个数组,数组中的元素需要指定数据类型。

import array

arr1 = array.array('i', [1, 2, 3])           # 包含三个整数的数组
arr2 = array.array('f', [1.0, 2.0, 3.0])     # 包含三个浮点数的数组
常用方法

数组也有一些常用的方法:

  • append(): 在数组末尾添加一个元素。
  • insert(): 在数组中的任意位置插入一个元素。
  • pop(): 删除数组末尾的元素。
  • remove(): 根据元素的值删除数组中的元素。
  • sort(): 按照特定的顺序对数组中的元素进行排序。
  • reverse(): 反转数组中的元素。

和列表相比,数组并没有额外的方法。

适用场景

当需要存储大量相同数据类型的元素时,使用数组会比列表更加高效,因为数组的内存占用更小,也更加快速。

元组

元组也是Python中的一种序列类型,和列表类似,它也可以存储任意数据类型的元素,但是元组一旦创建就不能再进行修改(Immutable)。可以使用小括号(())来创建一个元组,元素可以使用逗号分隔。

tuple1 = ()                     # 空元组
tuple2 = (1, 2, 3)              # 包含三个整数的元组
tuple3 = ("apple", "banana", "orange") # 包含三个字符串的元组
常用方法

由于元组是Immutable的,因此不支持修改元素的方法。只有一些基本的方法:

  • count(): 统计指定元素在元组中出现的次数。
  • index(): 返回指定元素在元组中的位置索引。
# 例如:

fruits = ("apple", "banana", "orange")
count = fruits.count("apple")   # 统计指定元素出现的次数
index = fruits.index("banana")  # 返回指定元素的索引位置
适用场景

当需要存储一组不允许修改的数据时,使用元组会比列表更加适合,比如程序中的常量。元组比列表更加节省内存,同时也更加安全。

总结

Python中的列表、数组和元组可以存储任意数据类型的元素,它们的区别在于:

  • 列表:动态长度,可以进行添加、删除和修改操作,但占用内存较多。
  • 数组:静态长度,只能存储相同数据类型的元素,但占用内存较少,速度更快。
  • 元组:静态长度,禁止修改元素,节省内存空间,更加安全。

根据不同的需求,选择合适的数据类型可以提高程序的运行效率。