您的位置:

Python中的列表:用于存储和处理数据

Python中的列表是指一种有序且可变动的数据类型,可以容纳任何类型、任何数量的元素。Python列表可以通过下标、迭代、列表操作等多种方式进行访问和处理,这使得它成为了Python语言中最常用的数据类型之一。它的强大之处不但在于可以存储多种数据类型,而且还可以进行快速、高效的数据处理和存取操作。

一、定义列表和基本操作

Python中的列表可以通过中括号[]或者list()函数来创建:


# 创建空列表
list1 = []
# 创建含有三个元素的列表
list2 = [1, 'two', 3.0]

将一个列表赋值给另一个变量时,两者指向的是同一个对象。对其中一个列表的修改也会影响到另一个列表,这与Python中的不可变类型数据(如str、int)不同。


# 将list2赋值给list3
list3 = list2 
# 修改list2中的元素
list2[0] = 'one' 
# 输出list3
print(list3)
输出:['one', 'two', 3.0]

Python列表中的元素可以通过下标来访问,下标从0开始:


mylist = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 输出第一个元素
print(mylist[0])
# 输出最后一个元素
print(mylist[-1])

Python列表中还有很多常用的操作,包括切片、拼接、加、乘、排序、插入、删除等,这些操作可以极大提高程序的运行效率和代码的简洁性。

二、列表的迭代和遍历

Python中的列表可以通过for-in循环进行迭代和遍历,也可以使用while循环配合下标进行遍历。


list4 = [1, 2, 3, 4, 5]
# for-in循环遍历列表
for i in list4:
    print(i)

# while循环配合下标遍历列表
i = 0
while i < len(list4):
    print(list4[i])
    i += 1

除了for循环和while循环外,Python还提供了很多方便的遍历方式,比如map、filter、reduce等。

三、列表生成式和推导式

Python中的列表生成式和推导式可以方便地生成新的列表。


# 列表生成式
list5 = [i for i in range(10)]
# 列表推导式
list6 = [i**2 for i in list5 if i%2==0]

列表生成式可以在一行代码中快速生成新的列表,而列表推导式更加通用,它可以通过if语句、for循环等方式进行筛选和处理。

四、多级列表和深拷贝

多级列表指的是列表中嵌套着其它多个列表,这种情况在数据处理和存储中比较常见。多级列表的访问和修改需要格外小心,其中需要注意深拷贝和浅拷贝的问题。


# 嵌套列表的定义
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 访问列表中的元素
print(nested_list[1][2])
# 修改列表中的元素
nested_list[1][2] = 10
print(nested_list)

# 浅拷贝
original_list = [[1, 2], [3, 4]]
copy_list = original_list.copy()
original_list[0][0] = 100
print(copy_list)

# 深拷贝
import copy 
original_list2 = [[1, 2], [3, 4]]
deepcopy_list = copy.deepcopy(original_list2)
original_list2[0][0] = 100
print(deepcopy_list)

上述代码说明,浅拷贝只复制了一级列表,而对第二级列表,则是指向同一对象。深拷贝则完全复制了原始对象和它里面的所有对象。

五、列表和Numpy数组的比较

Python中除了列表外,还有另外一种数据类型Numpy数组,两者都可以用于多维数组的处理。相比下来,Numpy数组在访问速度、元素类型限制、数学计算等方面要比Python列表更加高效。


import numpy as np 

# 创建numpy数组
np_array = np.array([1, 2, 3])
# 对numpy数组进行数学运算
np_array = np.sin(np_array)

# 将Python列表转化成numpy数组
list7 = [1, 2, 3]
np_array2 = np.array(list7)

当然,即使是在使用Numpy的场景中,Python列表仍然有它自己独特的作用,比如在数据的读写、多场景的应用等方面。

六、小结

Python中的列表是一种非常重要的数据类型,它可以存储和处理多种数据类型、多个元素。Python的列表操作非常灵活、高效,可以通过迭代、遍历、列表推导式、常用操作、多级列表等多种方式进行访问和处理。此外,Python的列表还可以与Numpy一起使用,以达到更复杂的运算和数据处理。