跳到主要内容Python 列表与元组的区别及常用操作 | 极客日志Python算法
Python 列表与元组的区别及常用操作
本文介绍了 Python 中列表和元组的基本概念、定义语法及常用操作。列表是可变序列,支持增删改,适用于动态数据;元组是不可变序列,适用于固定数据存储。两者均支持索引、切片和遍历。文章详细对比了它们在可变性、语法和性能上的区别,帮助开发者根据实际需求选择合适的容器类型。
追风少年2 浏览 什么是下标
在学习之前,我们先了解一下什么是下标:
在 Python 中,下标索引(也称为索引)用于访问序列类型(如字符串、列表、元组等)中的单个元素。Python 的索引从 0 开始,即第一个元素的索引是 0,第二个元素的索引是 1,依此类推。此外,Python 还支持负数索引,从序列的末尾开始计数,-1 表示最后一个元素,-2 表示倒数第二个元素,以此类推。
正数索引
正数索引从左到右,从 0 开始。
my_list = [, , , , ]
(my_list[])
(my_list[])
10
20
30
40
50
print
0
print
2
负数索引
my_list = [10, 20, 30, 40, 50]
print(my_list[-1])
print(my_list[-2])
切片(slice)
除了单个元素,Python 还支持通过切片访问序列的子集。
切片的语法是 [start:stop:step]:
start:起始索引(包含)。
stop:结束索引(不包含)。
step:步长(可选,默认为 1)。
下标索引从 0 开始,负数索引从 -1 开始,表示从末尾开始计数。切片 [start:stop:step] 可以获取子序列。索引越界会抛出 IndexError。
my_list = [10, 20, 30, 40, 50]
print(my_list[1:3])
print(my_list[:3])
print(my_list[2:])
print(my_list[::2])
print(my_list[::-1])
索引越界
如果尝试访问一个不存在的索引,Python 会抛出 IndexError 异常。
my_list = [10, 20, 30]
print(my_list[3])
什么是列表
在 Python 中,**列表(List)**是一种有序的、可变的序列类型,用于存储一组元素。列表用方括号 [] 定义,元素之间用逗号分隔。列表中的元素可以是任意类型(如整数、字符串、布尔值、甚至其他列表等),并且同一个列表中的元素可以是不同类型的。
列表的定义语法
empty_list = []
numbers = [1, 2, 3, 4, 5]
mixed_list = [1, "Hello", 3.14, True]
nested_list = [[1, 2], [3, 4], [5, 6]]
列表有哪些特点呢?
- 有序性:列表中的元素是有序的,每个元素都有一个固定的位置(索引),索引从
0 开始。
- 可变性:列表是可变的(mutable),可以动态地添加、删除或修改元素。
- 元素类型多样性:列表中的元素可以是任意类型,甚至可以是不同类型的混合。
- 支持重复元素:列表中可以包含重复的元素。
fruits = ["apple", "banana", "cherry"]
mixed_list = [42, "Python", 3.14, True]
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(fruits[0])
print(matrix[1][2])
列表的常见操作
- 访问元素:通过索引访问列表中的元素。
- 修改元素:通过索引直接修改列表中的元素。
- 添加元素:使用
append()、insert() 或 extend() 方法。
- 删除元素:使用
remove()、pop() 或 del 语句。
- 遍历列表:使用
for 循环遍历列表中的元素。
访问列表元素
列表中的元素可以通过下标索引访问,索引从 0 开始。
修改列表元素
添加元素
append():在列表末尾添加一个元素。
insert():在指定位置插入一个元素。
extend():将另一个列表的所有元素添加到当前列表末尾。
my_list = [1, 2, 3]
my_list.append(4)
my_list.insert(1, 99)
my_list.extend([5, 6])
删除元素
remove():删除列表中第一个匹配的元素。
pop():删除并返回指定索引的元素(默认删除最后一个元素)。
index():返回指定元素的索引。
in 关键字:检查元素是否存在于列表中。
del:通过索引删除元素。
my_list = [10, 20, 30, 40, 50]
my_list.remove(20)
last_element = my_list.pop()
del my_list[1]
查找元素
使用 index() 方法查找元素索引,或使用 in 判断存在性。
什么是元组
在 Python 中,**元组(Tuple)**是一种有序的、不可变的序列类型,用于存储一组元素。元组用圆括号 () 定义,元素之间用逗号分隔。元组与列表类似,但元组是不可变的(immutable),这意味着一旦创建,就不能修改元组中的元素。
empty_tuple = ()
numbers = (1, 2, 3, 4, 5)
mixed_tuple = (1, "Hello", 3.14, True)
nested_tuple = ((1, 2), (3, 4), (5, 6))
元组的特点
元组的常见操作
访问元组元素
元组中的元素可以通过下标索引访问,索引从 0 开始。
元组的切片
元组的遍历
元组与列表有什么区别
1. 可变性
- 列表(List):是可变的(mutable),可以动态地添加、删除或修改元素。
- 元组(Tuple):是不可变的(immutable),一旦创建,就不能修改元组中的元素。
my_list = [1, 2, 3]
my_list[1] = 99
my_list.append(4)
print(my_list)
my_tuple = (1, 2, 3)
my_tuple[1] = 99
2. 语法
- 列表:用方括号
[] 定义。
- 元组:用圆括号
() 定义。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3)
3. 性能
- 列表:由于列表是可变的,它的存储和操作(如添加、删除元素)会占用更多的内存和计算资源。
- 元组:由于元组是不可变的,它的存储和访问速度比列表更快,适合存储不需要修改的数据。
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown 转 HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
- HTML 转 Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online