【Python基础】从0到1入门列表(List):常用操作+避坑指南
前言:对于Python初学者而言,列表(List)是最基础、最常用的数据结构之一,也是日常开发、爬虫、数据分析中高频使用的工具。不同于其他编程语言的数组,Python列表具有灵活、易用的特点,支持多种数据类型,可动态增删改查。本文将从列表的基础定义出发,逐步拆解常用操作、进阶技巧,结合实际代码示例,帮大家快速掌握列表使用,避开新手常踩的坑,适合Python入门者收藏学习。
一、列表(List)基础定义与创建
1.1 什么是列表?
列表是Python中一种有序、可变的序列类型,用方括号 [] 包裹,元素之间用逗号 , 分隔。其核心特点:
-
有序性:元素按插入顺序排列,支持通过索引访问(索引从0开始);
-
可变性:可动态添加、删除、修改元素,无需提前指定长度;
-
多类型支持:列表中的元素可以是整数、字符串、布尔值,甚至是另一个列表(嵌套列表)。
1.2 列表的3种创建方式(实操示例)
最常用的3种创建方式,优先掌握前两种,第三种适合批量生成元素:
# 方式1:直接用方括号创建(最常用) list1 = [1, 2, 3, 4, 5] # 整数列表 list2 = ["Python", "Java", "C++"] # 字符串列表 list3 = [1, "CSDN", True, 3.14] # 多类型混合列表 # 方式2:用list()函数创建(适合转换其他类型) list4 = list((1, 2, 3)) # 转换元组为列表 list5 = list("hello") # 转换字符串为列表(拆分每个字符) list6 = list() # 创建空列表(等同于 []) # 方式3:用列表推导式创建(批量生成,进阶用法) list7 = [i for i in range(10)] # 生成0-9的整数列表 list8 = [i*2 for i in range(5)] # 生成0,2,4,6,8的列表 # 打印查看结果 print(list1) # 输出:[1, 2, 3, 4, 5] print(list5) # 输出:['h', 'e', 'l', 'l', 'o'] print(list7) # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
新手提示:创建空列表时,推荐用 [] ,比 list() 更简洁高效;列表推导式后续会单独详解,入门阶段先了解即可。
二、列表核心操作(必掌握)
列表的操作围绕"增、删、改、查"四大场景展开,以下操作均结合代码示例,可直接复制到PyCharm、IDLE中运行,加深记忆。
2.1 查:访问列表元素(索引+切片)
访问列表元素是最基础的操作,主要有两种方式:索引访问(单个元素)、切片访问(多个元素)。
# 定义一个测试列表 my_list = ["CSDN", "Python", 2026, 3.14, [1, 2, 3]] # 1. 索引访问:index从0开始,负数索引表示从末尾开始(-1是最后一个元素) print(my_list[0]) # 输出:CSDN(第一个元素) print(my_list[2]) # 输出:2026(第三个元素) print(my_list[-1]) # 输出:[1, 2, 3](最后一个元素,嵌套列表) print(my_list[-2]) # 输出:3.14(倒数第二个元素) # 2. 切片访问:语法:列表[起始索引:结束索引:步长],左闭右开(不包含结束索引) print(my_list[1:4]) # 输出:['Python', 2026, 3.14](索引1到3,不包含4) print(my_list[:3]) # 输出:['CSDN', 'Python', 2026](从开头到索引2) print(my_list[2:]) # 输出:[2026, 3.14, [1, 2, 3]](从索引2到末尾) print(my_list[::2]) # 输出:['CSDN', 2026, [1, 2, 3]](步长为2,隔一个取一个) print(my_list[::-1])# 输出:[[1, 2, 3], 3.14, 2026, 'Python', 'CSDN'](反转列表)
避坑点:索引不能超出列表范围,否则会报错 IndexError: list index out of range 。例如my_list有5个元素(索引0-4),访问my_list[5]会报错。
2.2 改:修改列表元素
列表是可变序列,可直接通过"索引赋值"修改单个元素,或通过切片赋值修改多个元素。
my_list = ["CSDN", "Python", 2026, 3.14] # 1. 修改单个元素(通过索引赋值) my_list[1] = "Python基础" print(my_list) # 输出:['CSDN', 'Python基础', 2026, 3.14] # 2. 修改多个元素(通过切片赋值) my_list[2:] = [2025, 6.66] # 替换索引2及以后的所有元素 print(my_list) # 输出:['CSDN', 'Python基础', 2025, 6.66] # 3. 插入多个元素(切片赋值的延伸) my_list[1:1] = ["Java", "C++"] # 在索引1的位置插入两个元素,不替换原有元素 print(my_list) # 输出:['CSDN', 'Java', 'C++', 'Python基础', 2025, 6.66]
2.3 增:添加列表元素(3种常用方法)
添加元素常用3种方法,区别在于"添加单个/多个""添加到末尾/指定位置",按需选择:
my_list = ["CSDN", "Python"] # 方法1:append():添加单个元素到列表末尾(最常用) my_list.append(2026) print(my_list) # 输出:['CSDN', 'Python', 2026] # 方法2:extend():添加另一个序列的所有元素到末尾(批量添加) my_list.extend([3.14, "Java"]) print(my_list) # 输出:['CSDN', 'Python', 2026, 3.14, 'Java'] # 方法3:insert():在指定索引位置添加单个元素(语法:insert(索引, 元素)) my_list.insert(1, "入门教程") print(my_list) # 输出:['CSDN', '入门教程', 'Python', 2026, 3.14, 'Java']
新手提示:append() 和 extend() 的区别:append() 会把整个参数当作一个元素添加,而 extend() 会拆分参数(必须是序列),添加其中的每个元素。例如 my_list.append([1,2]) 会添加整个列表作为一个元素,而 extend([1,2]) 会添加1和2两个元素。
2.4 删:删除列表元素(4种常用方法)
删除元素的方法较多,重点掌握前3种,根据"删除指定元素/指定索引/清空列表"选择:
my_list = ["CSDN", "Python", "Java", "C++", 2026] # 方法1:remove():根据元素值删除(删除第一个匹配的元素) my_list.remove("Java") print(my_list) # 输出:['CSDN', 'Python', 'C++', 2026] # 方法2:pop():根据索引删除元素,默认删除最后一个元素,返回被删除的元素 del_element1 = my_list.pop() # 无参数,删除最后一个元素 del_element2 = my_list.pop(1) # 有参数,删除索引1的元素 print(my_list) # 输出:['CSDN', 'C++'] print(del_element1) # 输出:2026(被删除的元素) print(del_element2) # 输出:Python(被删除的元素) # 方法3:del 语句:根据索引/切片删除,可删除单个、多个元素或整个列表 del my_list[1] # 删除索引1的元素 print(my_list) # 输出:['CSDN'] del my_list[:] # 删除列表中所有元素(清空列表) print(my_list) # 输出:[] # 方法4:clear():清空列表(等同于 del my_list[:],更简洁) my_list = ["CSDN", "Python"] my_list.clear() print(my_list) # 输出:[]
避坑点:remove() 方法如果删除的元素不在列表中,会报错 ValueError: list.remove(x): x not in list ;pop() 方法如果索引超出范围,会报错 IndexError: pop index out of range 。
三、列表常用内置函数与方法
除了上述增删改查操作,Python还提供了多个内置函数和列表方法,简化日常操作,以下是高频使用的几个:
my_list = [1, 3, 5, 2, 4, 3] # 1. 内置函数(无需调用列表,直接使用) print(len(my_list)) # 输出:6(获取列表长度,即元素个数) print(max(my_list)) # 输出:5(获取列表中最大元素,元素类型需一致) print(min(my_list)) # 输出:1(获取列表中最小元素,元素类型需一致) print(sum(my_list)) # 输出:18(获取列表中所有整数元素的和) # 2. 列表方法(需通过 列表.方法() 调用) print(my_list.count(3)) # 输出:2(统计元素3在列表中出现的次数) my_list.sort() # 对列表元素排序(默认升序,元素类型需一致) print(my_list) # 输出:[1, 2, 3, 3, 4, 5] my_list.reverse() # 反转列表(等同于 my_list[::-1]) print(my_list) # 输出:[5, 4, 3, 3, 2, 1] print(my_list.index(4)) # 输出:1(获取元素4在列表中第一次出现的索引)
四、新手常踩的5个坑(避坑总结)
-
索引越界:忘记列表索引从0开始,或访问超出列表长度的索引,导致
IndexError; -
元素类型混乱:使用max()、min()、sort()等函数/方法时,列表中混合了整数、字符串等不同类型,导致
TypeError; -
append() 与 extend() 混用:想批量添加元素却用了append(),导致添加了整个序列作为单个元素;
-
删除不存在的元素:用remove()删除列表中没有的元素,导致
ValueError; -
切片赋值误区:切片赋值时,右侧必须是可迭代对象(列表、元组、字符串等),否则会报错。
五、总结与拓展
本文围绕Python列表的基础定义、创建方式、核心操作(增删改查)、常用函数/方法,结合实操代码和避坑提示,帮大家快速入门列表的使用。列表作为Python中最基础的数据结构,是后续学习字典、元组、集合,以及爬虫、数据分析的基础,建议大家多动手练习,熟练掌握每一个核心操作。
拓展学习:
-
列表推导式的进阶用法(批量生成复杂列表);
-
嵌套列表的操作(列表中包含列表,如何访问、修改);
-
列表与元组(tuple)、集合(set)的区别与转换。
如果本文对你有帮助,欢迎点赞、收藏、关注,后续会持续更新Python基础系列教程,一起在CSDN共同成长~
评论区留言:你在使用列表时,还遇到过哪些问题?一起交流避坑!