Python中列表和数组的区别及应用场景
更新时间:2023-07-07列表和数组的概述
列表和数组都是常用的数据结构,它们可以存储一组元素,并能够对这些元素进行增删改查等操作。Python中的列表是一种可变容器模型,可以存储任意类型的对象,而数组则是一维的、定长的、同类型的数据结构。
列表和数组的定义
Python中列表的定义方式为用方括号[ ]括起来,用逗号分隔不同的元素,可以存储不同类型的元素:
list1 = [1, "hello", 3.5, ['a', 'b', 'c']]
而在Python中使用数组需要先导入numpy模块,然后可以通过numpy.array()函数将列表转为数组:
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
列表和数组的常用操作
在Python中,列表具有很多方便的方法。例如常用的获取列表长度=len(list)、向列表末尾添加元素=list.append(object)、在指定位置插入元素=list.insert(index, obj)、删除列表中指定值的元素=list.remove(obj)等等。
list1 = [1,2,3,4,5]
# 求列表长度
len(list1)
# 输出结果为
5
# 向列表末尾添加元素
list1.append(6)
# 输出结果为
[1,2,3,4,5,6]
# 在指定位置插入元素
list1.insert(1,10)
# 输出结果为
[1, 10, 2, 3, 4, 5, 6]
# 删除列表中指定值的元素
list1.remove(3)
# 输出结果为
[1, 10, 2, 4, 5, 6]
而在numpy中,数组则有一些常用的数学操作,例如一维数组的加减乘除,数组元素的平均数、方差、标准差、最大值和最小值等等。
import numpy as np
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([2,4,6,8,10])
# 数组加法
arr3 = arr1 + arr2
# 输出结果为
[ 3, 6, 9, 12, 15]
# 数组元素平均值
mean = np.mean(arr1)
# 输出结果为
3.0
# 数组元素方差
variance = np.var(arr1)
# 输出结果为
2.5
# 数组元素标准差
std = np.std(arr1)
# 输出结果为
1.5811388300841898
# 数组元素最大值
maxnum = np.max(arr1)
# 输出结果为
5
# 数组元素最小值
minnum = np.min(arr1)
# 输出结果为
1
列表和数组的应用场景
列表适合存储不同类型的元素,并且元素数量不固定的情况。比如在Python中读取文件,可以将每行的内容存储在一个列表里。同时,Python中一些内置函数返回的数据结构也是列表类型的,如range()函数和sorted()函数。
# range()函数返回的是一个range对象
rangeobj = range(1,6)
# 将range对象转为列表
list1 = list(rangeobj)
# 输出结果为
[1, 2, 3, 4, 5]
# sorted()函数返回一个排好序的列表
sortlist = sorted([3, 5, 1, 4, 2])
# 输出结果为
[1, 2, 3, 4, 5]
而数组通常用来存储同类型的数值型数据,并且提供了很多高效的数学运算,特别是对于大量数据的操作。例如在科学计算中,很多数据都可以通过数组来存储和处理。
import numpy as np
# 生成一个一维数组,元素为1到100之间的随机整数
arr1 = np.random.randint(1, 101, size=100)
# 输出前10个元素
print(arr1[:10])
# 数组元素平均值
mean = np.mean(arr1)
# 输出结果为
50.32