[特殊字符] Python学习第二天:列表的增删改查与操作技巧
👋 大家好!这是我学习Python的第二天笔记,今天主要学习列表(List)的各种操作。列表是Python中最常用的数据结构之一,掌握好列表操作能让你的编程效率大大提升!
文中会有代码+输出对比,还有小贴士和常见陷阱提醒哦!
📑 目录
📋 1. 列表基础:索引与访问
1.1 创建列表
1.2 访问列表元素
➕ 2. 添加元素:让列表“长大”
2.1 append() - 末尾追加
2.2 insert() - 任意位置插入
2.3 创建空列表的动态添加
➖ 3. 删除元素:让列表“瘦身”
3.1 del语句 - 根据索引删除
3.2 pop() - 弹出元素(类似栈)
3.3 remove() - 根据值删除
🔄 4. 实战演练:名单管理小系统
📊 5. 列表排序与反转
5.1 sort() - 永久排序
5.2 sorted() - 临时排序
5.3 reverse() - 反转列表
📏 6. 获取列表长度:len()
📚 今日学习总结
💬 写在最后
📋 1. 列表基础:索引与访问
1.1 创建列表
python
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
输出:
text
['trek', 'cannondale', 'redline', 'specialized']
1.2 访问列表元素
python
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
# 正索引访问(从0开始)
print(bicycles[0]) # 第一个元素
print(bicycles[1]) # 第二个元素
# 负索引访问(从-1开始,表示最后一个元素)
print(bicycles[-1]) # 最后一个元素
print(bicycles[-2]) # 倒数第二个元素
输出:
text
trek
cannondale
specialized
redline
💡 小贴士:负索引是Python的一大特色,-1永远表示最后一个元素,非常实用!
➕ 2. 添加元素:让列表“长大”
2.1 append() - 末尾追加
python
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print("原始列表:", bicycles)
bicycles.append('abc')
print("追加后:", bicycles)
输出:
text
原始列表: ['trek', 'cannondale', 'redline', 'specialized']
追加后: ['trek', 'cannondale', 'redline', 'specialized', 'abc']
2.2 insert() - 任意位置插入
python
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print("原始列表:", bicycles)
bicycles.insert(1, 'abc') # 在索引1的位置插入'abc'
print("插入后:", bicycles)
输出:
text
原始列表: ['trek', 'cannondale', 'redline', 'specialized']
插入后: ['trek', 'abc', 'cannondale', 'redline', 'specialized']
2.3 创建空列表的动态添加
python
# 常见模式:先创建空列表,再动态添加元素
a = []
a.append('lala')
print(a)
# 可以多次追加
a.append('haha')
a.append('hehe')
print(a)
输出:
text
['lala']
['lala', 'haha', 'hehe']
⚡ 实用技巧:这种“先创建空列表,再动态添加”的模式在数据处理中非常常见,比如从文件读取数据时。
➖ 3. 删除元素:让列表“瘦身”
3.1 del语句 - 根据索引删除
python
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print("原始列表:", bicycles)
del bicycles[1] # 删除索引为1的元素('cannondale')
print("删除后:", bicycles)
输出:
text
原始列表: ['trek', 'cannondale', 'redline', 'specialized']
删除后: ['trek', 'redline', 'specialized']
⚠️ 注意:del是按索引删除,不能直接del 'cannondale',这样会报错!
3.2 pop() - 弹出元素(类似栈)
弹出最后一个元素:
python
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print("原始列表:", bicycles)
popped_bicycle = bicycles.pop() # 弹出最后一个元素
print("弹出的元素:", popped_bicycle)
print("剩余列表:", bicycles)
输出:
text
原始列表: ['trek', 'cannondale', 'redline', 'specialized']
弹出的元素: specialized
剩余列表: ['trek', 'cannondale', 'redline']
弹出任意位置元素:
python
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print("\n原始列表:", bicycles)
popped_bicycle = bicycles.pop(0) # 弹出索引为0的元素
print("弹出的元素:", popped_bicycle)
print("剩余列表:", bicycles)
输出:
text
原始列表: ['trek', 'cannondale', 'redline', 'specialized']
弹出的元素: trek
剩余列表: ['cannondale', 'redline', 'specialized']
🔍 del vs pop() 的区别:
del:直接删除,不需要使用被删除的元素
pop():删除并返回被删除的元素,后续可能还会用到
3.3 remove() - 根据值删除
python
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print("原始列表:", bicycles)
bicycles.remove('trek') # 删除值为'trek'的元素
print("删除后:", bicycles)
输出:
text
原始列表: ['trek', 'cannondale', 'redline', 'specialized']
删除后: ['cannondale', 'redline', 'specialized']
⚠️ 注意:
remove()只删除第一个匹配项,如果有多个相同值,需要用循环删除
如果要删除的元素不存在,会报错
🔄 4. 实战演练:名单管理小系统
让我们把学到的知识串起来,模拟一个简单的名单管理场景:
python
# 初始名单
liebiao = ['li', 'zhao', 'wang']
print("=== 初始名单 ===")
print(liebiao)
# 邀请吃饭
print("\n=== 发出邀请 ===")
print(f"{liebiao[0]},来吃饭")
print(f"{liebiao[1]},来吃饭")
print(f"{liebiao[2]},来吃饭")
# 有人来不了,换人
print("\n=== 更换人员 ===")
liebiao.remove('zhao') # 赵来不了
liebiao.insert(1, 'sun') # 孙加入
print("更新后的名单:", liebiao)
# 重新邀请
print("\n=== 重新邀请 ===")
print(f"{liebiao[0]},来吃饭")
print(f"{liebiao[1]},来吃饭")
print(f"{liebiao[2]},来吃饭")
# 有人临时有事来不了
print("\n=== 有人缺席 ===")
print(f"不好意思{liebiao.pop()}!") # 弹出最后一个
print(f"不好意思{liebiao.pop()}!") # 再弹出一个
print("剩余名单:", liebiao)
# 最后一个人也取消
del liebiao[0]
print("最终名单:", liebiao)
print("名单长度:", len(liebiao))
输出:
text
=== 初始名单 ===
['li', 'zhao', 'wang']
=== 发出邀请 ===
li,来吃饭
zhao,来吃饭
wang,来吃饭
=== 更换人员 ===
更新后的名单: ['li', 'sun', 'wang']
=== 重新邀请 ===
li,来吃饭
sun,来吃饭
wang,来吃饭
=== 有人缺席 ===
不好意思wang!
不好意思sun!
剩余名单: ['li']
最终名单: []
名单长度: 0
🎯 实战要点:这个例子展示了列表操作的组合使用,非常贴近实际开发场景!
📊 5. 列表排序与反转
5.1 sort() - 永久排序
python
liebiao = ['a', 'c', 'b']
print("原始列表:", liebiao)
liebiao.sort() # 升序排序(永久改变)
print("sort()后:", liebiao)
liebiao.sort(reverse=True) # 降序排序
print("降序排序:", liebiao)
输出:
text
原始列表: ['a', 'c', 'b']
sort()后: ['a', 'b', 'c']
降序排序: ['c', 'b', 'a']
5.2 sorted() - 临时排序
python
liebiao = ['a', 'c', 'b']
print("原始列表:", liebiao)
# sorted()返回排序后的新列表,原列表不变
sorted_liebiao = sorted(liebiao)
print("sorted()后原列表:", liebiao)
print("排序后的新列表:", sorted_liebiao)
# 也可以降序
print("降序排序:", sorted(liebiao, reverse=True))
输出:
text
原始列表: ['a', 'c', 'b']
sorted()后原列表: ['a', 'c', 'b']
排序后的新列表: ['a', 'b', 'c']
降序排序: ['c', 'b', 'a']
5.3 reverse() - 反转列表
python
liebiao = ['a', 'c', 'b']
print("原始列表:", liebiao)
liebiao.reverse() # 反转列表顺序
print("反转后:", liebiao)
输出:
text
原始列表: ['a', 'c', 'b']
反转后: ['b', 'c', 'a']
🔍 sort(reverse=True) vs reverse():
sort(reverse=True):按字母/数字大小降序排列
reverse():单纯反转当前顺序,不涉及大小比较
📏 6. 获取列表长度:len()
python
liebiao = ['a', 'c', 'b']
length = len(liebiao)
print(f"列表:{liebiao}")
print(f"列表长度:{length}")
# 空列表长度
empty_list = []
print(f"空列表长度:{len(empty_list)}")
输出:
text
列表:['a', 'c', 'b']
列表长度:3
空列表长度:0
💡 小贴士:len()是Python的全局函数,不仅可用于列表,还可用于字符串、元组、字典等所有容器类型。
📚 今日学习总结
操作类型 方法/语法 说明 示例
访问 列表[索引] 通过索引访问元素 bicycles[0]
列表[-1] 访问最后一个元素 bicycles[-1]
添加 append(x) 末尾追加元素 bicycles.append('abc')
insert(i, x) 在索引i处插入元素 bicycles.insert(1, 'abc')
删除 del 列表[i] 删除索引i的元素 del bicycles[1]
pop() 弹出最后一个元素 popped = bicycles.pop()
pop(i) 弹出索引i的元素 popped = bicycles.pop(0)
remove(x) 删除第一个值为x的元素 bicycles.remove('trek')
排序 sort() 永久排序 liebiao.sort()
sort(reverse=True) 永久降序排序 liebiao.sort(reverse=True)
sorted(列表) 临时排序 new = sorted(liebiao)
其他 reverse() 反转列表 liebiao.reverse()
len(列表) 获取列表长度 length = len(liebiao)
💬 写在最后
今天我们学习了Python中最常用的数据结构——列表的各种操作:
✅ 如何访问列表元素(正索引、负索引)
✅ 如何添加元素(append、insert)
✅ 如何删除元素(del、pop、remove)
✅ 如何排序和反转(sort、sorted、reverse)
✅ 如何获取列表长度(len)
列表是Python编程的基石,掌握这些操作后,你已经可以处理很多实际问题了!
下一篇预告:Python学习第三天——循环、range()与切片技巧
📌 互动提示:如果你在学习过程中遇到问题,欢迎在评论区留言讨论!觉得有帮助的话点个👍支持一下~我们下期再见!👋
更多推荐

所有评论(0)