Python 列表(List)


Python列表(List)

什么是列表?

在Python中,列表(List)是一种有序可变的序列容器类型。可以存储任意类型的数据(数字、字符串、元组、列表、字典等),并通过索引获取这些数据。和字符串不同,列表是可变的,可以添加、删除、修改元素。

如何创建一个列表?

列表使用方括号 [ ] 来表示,其中各个元素用逗号隔开。例如:

# 创建一个空列表
my_list = []

# 创建一个有几个元素的列表
my_list = [1, 2, 3, 4, 5]

# 创建一个包含不同数据类型元素的列表
my_list = ['apple', 3.14, True, [1, 2, 3]]

列表元素的修改、添加和删除

修改元素

Python中列表中的元素是可变的。修改元素,可以使用列表的索引和赋值语句。例如:

my_list = [1, 2, 3, 4, 5]
my_list[0] = 10
print(my_list) # 输出结果:[10, 2, 3, 4, 5]

添加元素

添加元素有两种方式:append()和extend()。append()用于添加单个元素,而extend()用于添加多个元素。例如:

my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # 输出结果:[1, 2, 3, 4]

your_list = [5, 6, 7]
my_list.extend(your_list)
print(my_list) # 输出结果:[1, 2, 3, 4, 5, 6, 7]

另外,还可以使用insert()在指定位置插入元素:

my_list = [1, 2, 3]
my_list.insert(1, 'hello')
print(my_list) # 输出结果:[1, 'hello', 2, 3]

删除元素

删除元素有多种方式,包括remove()、pop()和del()。remove()用于删除指定元素,pop()用于删除指定索引的元素,del()用于删除指定索引或切片。例如:

my_list = [1, 2, 3, 4, 5]
my_list.remove(3)
print(my_list) # 输出结果:[1, 2, 4, 5]

my_list.pop(1)
print(my_list) # 输出结果:[1, 4, 5]

del my_list[0]
print(my_list) #输出结果:[4, 5]

del my_list[1:3]
print(my_list) # 输出结果:[4]

列表操作

列表切片

Python中,切片可以用于获取部分列表。语法如下:

my_list = [1, 2, 3, 4, 5]
new_list = my_list[start:end:step]

其中,start是起始位置(包含),end是结束位置(不包含),step是步长。例如:

my_list = [1, 2, 3, 4, 5]
new_list = my_list[1:4:2]
print(new_list) #输出结果:[2, 4]

列表拼接

列表拼接使用加号运算符(+)或extend()方法。例如:

my_list = [1, 2, 3]
your_list = [4, 5, 6]
new_list = my_list + your_list
print(new_list) # 输出结果:[1, 2, 3, 4, 5, 6]

my_list.extend(your_list)
print(my_list) # 输出结果:[1, 2, 3, 4, 5, 6]

列表排序

使用sort()方法可以对列表进行排序。默认情况下,sort()方法按升序排列。

my_list = [3, 1, 4, 2]
my_list.sort()
print(my_list) # 输出结果:[1, 2, 3, 4]

如果需要按降序排列,可以将参数reverse设置为True。

my_list = [3, 1, 4, 2]
my_list.sort(reverse=True)
print(my_list) # 输出结果:[4, 3, 2, 1]

列表复制

复制列表,有两种方式:浅拷贝和深拷贝。

浅拷贝

浅拷贝使用copy()方法。浅拷贝只拷贝列表的第一层元素,对于元素本身是可变对象(如列表、字典等),只拷贝引用,不同时拷贝数据。例如:

my_list = [1, 2, [3, 4]]
new_list = my_list.copy()

my_list[2][0] = 5
print(my_list) # 输出结果:[1, 2, [5, 4]]
print(new_list) # 输出结果:[1, 2, [5, 4]]

深拷贝

深拷贝使用copy模块的deepcopy()方法。深拷贝不仅会拷贝第一层元素,还会递归拷贝所有嵌套对象。

import copy

my_list = [1, 2, [3, 4]]
new_list = copy.deepcopy(my_list)

my_list[2][0] = 5
print(my_list) # 输出结果:[1, 2, [5, 4]]
print(new_list) # 输出结果:[1, 2, [3, 4]]

总结

Python中列表是一种有序的可变容器对象,可以存储任意类型的数据,通过索引可以操作列表中的数据。列表提供了添加、删除、修改等方法,并支持切片、拼接和排序等操作。在复制列表时,需要注意浅拷贝和深拷贝的区别。掌握列表的操作方法,能够提高Python编程的效率。