Python列表list入门教程:小白也能看懂的基础操作大全

张开发
2026/4/18 6:13:03 15 分钟阅读

分享文章

Python列表list入门教程:小白也能看懂的基础操作大全
Python 列表 list 入门教程小白也能看懂的基础操作大全如果你刚学 Python不知道如何存储多个数据那列表list绝对是你入门的第一个“神器”。今天我们就用大白话聊清楚列表是什么、怎么创建、怎么增删改查、常见错误怎么解决全程带完整代码小白跟着敲一遍就能上手。1. 列表是什么我们可以把 Python 列表理解成生活里的购物清单、待办事项列表、学生名单。比如你要记录今天要买的东西苹果牛奶面包如果不用列表你可能要写很多变量# 这样写也能保存数据但数据一多就很乱item1苹果item2牛奶item3面包有了列表我们可以把多个数据放到一个变量里# 用一个列表保存多个商品名称shopping_list[苹果,牛奶,面包]# 打印整个购物清单print(shopping_list)列表有几个很重要的特点有序谁在前、谁在后顺序是固定的。可修改可以添加、删除、修改里面的元素。能放不同类型的数据字符串、数字、布尔值都可以放进去。总结一下列表就是用来存储多个数据的容器特别适合保存学生名单、成绩列表、商品清单、待办事项等。2. 列表的创建创建列表最常用的是方括号[]。列表里的元素之间要用英文逗号,分隔。2.1 创建空列表# 创建一个空列表里面暂时没有任何元素students[]# 打印空列表print(students)2.2 创建包含多个字符串的列表# 创建一个学生姓名列表# 每个姓名都是字符串字符串需要用引号包起来students[小明,小红,小刚]# 打印学生列表print(students)2.3 创建包含不同类型元素的列表# 一个列表里可以放不同类型的数据# 小明 是字符串18 是数字True 是布尔值student_info[小明,18,True]# 打印学生信息print(student_info)2.4 使用 list() 函数创建列表# list() 可以把一些数据转换成列表# 这里把字符串 abc 转成列表每个字符都会变成列表里的一个元素letterslist(abc)# 输出结果是 [a, b, c]print(letters)总结一下创建列表最常用[]元素之间用英文逗号隔开。3. 列表元素的访问列表是有顺序的所以我们可以通过“位置编号”访问元素。这个位置编号在 Python 里叫索引。小白一定要记住Python 的索引从 0 开始不是从 1 开始。3.1 使用正索引访问元素# 创建一个学生姓名列表students[小明,小红,小刚]# 索引从 0 开始# students[0] 表示第 1 个元素print(students[0])# students[1] 表示第 2 个元素print(students[1])# students[2] 表示第 3 个元素print(students[2])3.2 使用负索引访问元素# 创建一个学生姓名列表students[小明,小红,小刚]# -1 表示最后一个元素print(students[-1])# -2 表示倒数第 2 个元素print(students[-2])3.3 使用切片访问多个连续元素切片可以理解为“从列表里切一段出来”。# 创建一个成绩列表scores[88,92,76,100,85]# 取索引 1 到索引 3 之前的元素# 注意包含索引 1不包含索引 3print(scores[1:3])# 从开头取到索引 3 之前print(scores[:3])# 从索引 2 一直取到最后print(scores[2:])特别提醒如果访问单个元素时索引超出范围会报错。比如列表只有 3 个元素就不能访问students[3]。总结一下单个元素用索引多个连续元素用切片索引从 0 开始。4. 列表元素的添加列表常用的添加方法有 3 个append()、extend()、insert()。4.1 append()在末尾添加一个元素append()的意思是“追加”它会把一个元素加到列表最后。# 创建一个学生列表students[小明,小红]# 在列表末尾添加一个学生students.append(小刚)# 输出结果[小明, 小红, 小刚]print(students)注意append()一次只能接收一个参数。# 创建一个学生列表students[小明,小红]# 如果想一次添加多个学生不要这样写# students.append(小刚, 小李) # 这行会报错因为 append() 只能接收一个参数# 如果把多个学生放在一个列表里再 append会把整个列表当成一个元素添加进去students.append([小刚,小李])# 输出结果[小明, 小红, [小刚, 小李]]print(students)4.2 extend()在末尾添加多个元素如果我们想一次添加多个元素就用extend()。# 创建一个学生列表students[小明,小红]# extend() 会把另一个列表里的元素一个个加进来students.extend([小刚,小李])# 输出结果[小明, 小红, 小刚, 小李]print(students)extend()不只可以接收列表也可以接收元组等可遍历的数据。# 创建一个数字列表numbers[1,2,3]# 使用元组添加多个数字numbers.extend((4,5,6))# 输出结果[1, 2, 3, 4, 5, 6]print(numbers)4.3 insert()在指定位置添加元素insert(索引, 元素)可以把元素插入到指定位置。# 创建一个学生列表students[小明,小刚]# 在索引 1 的位置插入 小红# 原来索引 1 的 小刚 会往后移动students.insert(1,小红)# 输出结果[小明, 小红, 小刚]print(students)如果插入的位置超过列表长度Python 会直接把元素放到最后。# 创建一个学生列表students[小明,小红]# 索引 100 明显超过列表长度Python 会把 小刚 放到最后students.insert(100,小刚)# 输出结果[小明, 小红, 小刚]print(students)总结一下append() 加一个extend() 加多个insert() 指定位置加一个。5. 列表元素的修改列表是可以修改的。我们可以通过索引直接修改某个元素也可以通过切片一次修改多个元素。5.1 通过索引修改单个元素# 创建一个学生列表students[小明,小红,小刚]# 把索引 1 的元素从 小红 改成 小美students[1]小美# 输出结果[小明, 小美, 小刚]print(students)5.2 通过切片修改多个元素# 创建一个成绩列表scores[60,70,80,90]# 把索引 1 到索引 3 之前的元素替换成新的成绩# 也就是把 70 和 80 替换成 75 和 85scores[1:3][75,85]# 输出结果[60, 75, 85, 90]print(scores)注意通过索引修改时索引不能越界。# 创建一个学生列表students[小明,小红]# students[5] 小刚 # 这行会报错因为索引 5 不存在# 正确做法如果想添加新元素用 append()students.append(小刚)print(students)总结一下已有元素可以用索引修改新元素要用添加方法不要用不存在的索引硬改。6. 列表元素的删除列表删除元素的方法很多小白最常用的是del、remove()、pop()、clear()。6.1 del通过索引删除元素# 创建一个学生列表students[小明,小红,小刚]# 删除索引 1 的元素也就是 小红delstudents[1]# 输出结果[小明, 小刚]print(students)del也可以删除多个连续元素。# 创建一个数字列表numbers[1,2,3,4,5]# 删除索引 1 到索引 4 之前的元素也就是 2、3、4delnumbers[1:4]# 输出结果[1, 5]print(numbers)del还可以删除整个列表变量。# 创建一个列表students[小明,小红]# 删除整个列表变量delstudents# 删除后再访问 students 会报错# print(students) # NameError: name students is not defined6.2 remove()根据元素值删除remove()是根据“值”来删除而不是根据索引。# 创建一个水果列表fruits[苹果,香蕉,苹果,橙子]# 删除第一个出现的 苹果fruits.remove(苹果)# 输出结果[香蕉, 苹果, 橙子]print(fruits)注意如果列表里有多个相同元素remove()只删除第一个。如果元素不存在remove()会报错。# 创建一个水果列表fruits[苹果,香蕉]# 删除前先判断避免元素不存在时报错if橙子infruits:fruits.remove(橙子)else:print(列表里没有橙子不能删除)print(fruits)6.3 pop()删除元素并返回被删除的值pop()默认删除最后一个元素。# 创建一个待办列表todo_list[写作业,洗衣服,看书]# pop() 默认删除最后一个元素并把被删除的元素返回给变量donetodo_list.pop()print(刚刚完成的事情,done)print(剩余待办,todo_list)pop()也可以指定索引删除。# 创建一个学生列表students[小明,小红,小刚]# 删除索引 0 的元素也就是 小明removed_studentstudents.pop(0)print(被删除的学生,removed_student)print(剩余学生,students)6.4 clear()清空列表clear()会把列表里的元素全部清空但列表本身还在。# 创建一个购物车列表cart[苹果,牛奶,面包]# 清空购物车cart.clear()# 输出结果[]print(cart)总结一下del 按索引删remove 按值删pop 删除并返回clear 清空列表。7. 列表常用操作与方法下面这些方法非常常用小白一定要熟悉。7.1 len()获取列表长度# 创建一个学生列表students[小明,小红,小刚]# len() 可以获取列表里有多少个元素countlen(students)print(学生人数,count)7.2 count()统计元素出现次数# 创建一个成绩等级列表grades[A,B,A,C,A]# 统计 A 出现了几次a_countgrades.count(A)print(A 出现的次数,a_count)7.3 index()查找元素索引# 创建一个学生列表students[小明,小红,小刚]# 查找 小红 的索引indexstudents.index(小红)print(小红的索引是,index)如果元素不存在index()会报错所以可以先判断。# 创建一个学生列表students[小明,小红,小刚]# 查找前先判断避免报错if小李instudents:print(students.index(小李))else:print(列表里没有小李)7.4 sort()排序sort()会直接修改原列表默认从小到大排序。# 创建一个成绩列表scores[88,60,95,72]# 默认升序排序从小到大scores.sort()print(scores)如果想降序排序可以设置reverseTrue。# 创建一个成绩列表scores[88,60,95,72]# 降序排序从大到小scores.sort(reverseTrue)print(scores)注意排序时列表里的元素类型最好一致。不要把数字和字符串混在一起排序。7.5 reverse()反转列表顺序reverse()不是排序而是把当前顺序倒过来。# 创建一个学生列表students[小明,小红,小刚]# 把列表顺序反过来students.reverse()# 输出结果[小刚, 小红, 小明]print(students)7.6 copy()复制列表小白很容易把“赋值”和“复制”搞混我们来看对比。# 创建一个原始列表students[小明,小红]# 这不是复制只是给同一个列表起了另一个名字new_studentsstudents# 修改 new_students也会影响 studentsnew_students.append(小刚)print(students,students)print(new_students,new_students)如果想真正复制一份新列表可以用copy()。# 创建一个原始列表students[小明,小红]# copy() 会复制出一个新的列表new_studentsstudents.copy()# 修改新列表不会影响原列表new_students.append(小刚)print(原列表 students,students)print(新列表 new_students,new_students)这里的copy()是基础复制也叫浅复制。小白阶段先记住一句话就够了普通的一层列表用 copy() 复制基本够用。总结一下len 看长度count 数次数index 找位置sort 排序reverse 反转copy 复制。8. 小白常遇错误及解决方法学列表时报错很正常。关键是我们要看懂为什么错知道怎么改。8.1 索引越界错误 IndexError错误代码# 列表只有 3 个元素索引最大是 2students[小明,小红,小刚]# 错误索引 3 不存在print(students[3])常见报错信息IndexError: list index out of range错误原因列表索引从 0 开始3 个元素的索引是 0、1、2没有 3。修正代码# 正确访问最后一个元素students[小明,小红,小刚]# 方法 1使用索引 2print(students[2])# 方法 2使用 -1表示最后一个元素print(students[-1])8.2 append() 添加多个元素时容易用错错误代码# 创建一个学生列表students[小明,小红]# 错误append() 只能接收一个参数# students.append(小刚, 小李)常见报错信息TypeError: list.append() takes exactly one argument错误原因append()一次只能添加一个元素。修正代码# 创建一个学生列表students[小明,小红]# 如果要添加多个元素用 extend()students.extend([小刚,小李])print(students)再看一个容易误会的情况# 创建一个学生列表students[小明,小红]# 这不会添加两个学生而是把整个列表当成一个元素添加进去students.append([小刚,小李])print(students)8.3 remove() 删除不存在的元素错误代码# 创建一个水果列表fruits[苹果,香蕉]# 错误列表里没有 橙子fruits.remove(橙子)常见报错信息ValueError: list.remove(x): x not in list错误原因remove()删除的元素必须真的存在。修正代码# 创建一个水果列表fruits[苹果,香蕉]# 删除前先判断if橙子infruits:fruits.remove(橙子)else:print(橙子不在列表里不能删除)print(fruits)8.4 排序时元素类型不一致 TypeError错误代码# 列表里既有数字又有字符串data[10,3,20]# 错误数字和字符串不能直接放一起排序data.sort()常见报错信息TypeError: not supported between instances of str and int错误原因Python 不知道数字10和字符串20谁大谁小。修正代码# 如果这些数据本质上都是数字就先统一转成数字data[10,3,20]# 用列表推导式把每个元素都转成 int# 小白可以先理解为把 data 里的每个元素逐个转成整数numbers[int(item)foritemindata]# 现在都是数字了可以正常排序numbers.sort()print(numbers)8.5 把赋值当成复制容易混淆的代码# 创建一个原列表old_list[苹果,香蕉]# 这不是复制只是两个变量指向同一个列表new_listold_list# 修改 new_listnew_list.append(橙子)# old_list 也跟着变了print(old_list)print(new_list)修正代码# 创建一个原列表old_list[苹果,香蕉]# 使用 copy() 复制一个新列表new_listold_list.copy()# 修改新列表new_list.append(橙子)# 原列表不会受影响print(old_list)print(new_list)总结一下遇到报错别慌先看报错类型再回头检查索引、元素是否存在、方法用法是否正确。9. 结尾总结今天我们从小白角度学习了 Python 列表的基础操作创建列表[]、list()访问元素索引、切片添加元素append()、extend()、insert()修改元素索引修改、切片修改删除元素del、remove()、pop()、clear()常用方法len()、count()、index()、sort()、reverse()、copy()列表非常实用大家以后写 Python 时会经常用到它。最后给大家两个简单小案例可以自己敲一遍。小案例 1待办事项列表# 创建一个待办事项列表todo_list[]# 添加几个待办事项todo_list.append(写作业)todo_list.append(洗衣服)todo_list.append(看书)# 打印当前待办事项print(当前待办,todo_list)# 完成最后一个任务donetodo_list.pop()# 打印完成的任务和剩余任务print(刚完成,done)print(剩余待办,todo_list)小案例 2学生成绩排序# 创建一个成绩列表scores[88,95,72,60,100]# 按从高到低排序scores.sort(reverseTrue)# 打印排序后的成绩print(成绩从高到低,scores)# 打印最高分print(最高分,scores[0])# 打印最低分print(最低分,scores[-1])列表并不难难的是刚开始不熟。小白们只要多写、多改、多运行慢慢就会发现列表真的很好用。

更多文章