当前位置:首页>python>Python列表:打工人的数据收纳神器,用它效率翻倍!

Python列表:打工人的数据收纳神器,用它效率翻倍!

  • 2026-10-11 08:37:03
Python列表:打工人的数据收纳神器,用它效率翻倍!

点击上方蓝字关注我们

大家好,我是星禾~
从大厂程序员到全职宝妈,再到米核AI合伙人,其实我接触过不少编程语言。但要问我Python里最常用的数据结构是什么?
那必须是列表(List)。
今天就把我这些年总结的列表使用心得分享给大家,纯干货,建议收藏!

01

什么是列表?
简单来说,列表就是一个可以装很多东西的容器。
# 购物清单
shopping = ["牛奶", "面包", "鸡蛋", "牛肉"]
# 成绩单
scores = [85, 92, 78, 90, 88]
# 混搭也没问题
mixed = ["星禾", 28, True, 3.14]
它的特点是:
  • 有序:元素有先后顺序
  • 可变:随时可以添加、删除、修改
  • 灵活:什么类型都能装

02

增删改查,一个表搞定
这一部分是重点,记好了!
1. 增(添加元素)
fruits = ["苹果", "香蕉"]
# 末尾加一个
fruits.append("橙子")
print(fruits)  # ['苹果', '香蕉', '橙子']
# 指定位置插入
fruits.insert(1, "葡萄")
print(fruits)  # ['苹果', '葡萄', '香蕉', '橙子']
# 一次加好几个
fruits.extend(["芒果", "梨"])
print(fruits)  # ['苹果', '葡萄', '香蕉', '橙子', '芒果', '梨']
记忆技巧:
-
append= "贴上去",往末尾加
-
insert= "插进去",指定位置加
-
extend= "扩展",一次加一堆
2. 删(删除元素)
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
# 按位置删
del fruits[1]          # 删除第2个
print(fruits)          # ['苹果', '橙子', '葡萄']
# 按值删(删第一个匹配的)
fruits.remove("橙子")
print(fruits)          # ['苹果', '葡萄']
# 弹出来(删掉并返回)
popped = fruits.pop()
print(popped)          # 葡萄
print(fruits)          # ['苹果']
记忆技巧:
-
del= 直接删,干净利落
-
remove= 移除,指定值
-
pop= 弹出来,顺便用一下被删的值
3. 改(修改元素)
fruits = ["苹果", "香蕉", "橙子"]
fruits[1] = "芒果"  # 直接赋值替换
print(fruits)       # ['苹果', '芒果', '橙子']
4. 查(查询元素)
fruits = ["苹果", "香蕉", "橙子", "香蕉"]
# 索引查询
print(fruits[0])     # 苹果
print(fruits[-1])    # 橙子(倒数第一个)
# 切片查询
print(fruits[0:2])   # ['苹果', '香蕉']
# 判断存在
print("香蕉" in fruits)   # True
print("西瓜" in fruits)   # False
# 统计出现次数
print(fruits.count("香蕉"))  # 2

03

切片操作
切片是Python的精髓之一,用好了效率翻倍!
nums = [0, 1, 2, 3, 4, 5, 6]
print(nums[2:5])     # [2, 3, 4]  索引2到4
print(nums[:3])      # [0, 1, 2]  从头到索引2
print(nums[3:])      # [3, 4, 5, 6]  从索引3到末尾
print(nums[::2])     # [0, 2, 4, 6]  隔一个取一个
print(nums[::-1])    # [6, 5, 4, 3, 2, 1, 0]  反转
切片公式:
列表[起始:结束:步长]

04

列表推导式(重要!)
这是Python最优雅的语法之一,用好了代码瞬间变简洁。
基本用法
# 传统写法
squares = []
for x in range(10):
    squares.append(x ** 2)
# 列表推导式(一行搞定)
squares = [x ** 2 for x in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
带条件过滤
# 筛选偶数的平方
even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares)  # [0, 4, 16, 36, 64]
实战例子
# 把名字变成大写
names = ["alice", "bob", "charlie"]
upper_names = [name.upper() for name in names]
print(upper_names)  # ['ALICE', 'BOB', 'CHARLIE']
# 过滤无效数据
data = ["  Alice ", "Bob\n", "", "Charlie "]
clean = [s.strip() for s in data if s.strip()]
print(clean)  # ['Alice', 'Bob', 'Charlie']

05

避坑指南
这里有几个坑大家一定要注意一下:
1. 索引越界
fruits = ["苹果", "香蕉"]
print(fruits[5])  # IndexError!报错!
2. remove()删不存在的值
fruits = ["苹果", "香蕉"]
fruits.remove("西瓜")  # ValueError!找不到!
3. 循环中删除元素
# 危险!
nums = [1, 2, 2, 3, 2]
for n in nums:
    if n == 2:
        nums.remove(n)  # 可能漏删!
# 安全做法
nums = [1, 2, 2, 3, 2]
nums = [n for n in nums if n != 2]  # 用列表推导式过滤
4. 列表赋值是引用
a = [1, 2, 3]
b = a            # b和a指向同一个列表!
b[0] = 99
print(a)         # [99, 2, 3]  a也被改了!
# 正确做法
a = [1, 2, 3]
b = a.copy()   # 或者 b = a[:] 或者 import copy; b = copy.deepcopy(a)

06

实战应用
场景1:成绩管理
scores = [85, 92, 78, 90, 88]
# 添加成绩
scores.append(95)
print(f"平均分: {sum(scores) / len(scores):.1f}")  # 88.6
# 最高分和最低分
print(f"最高: {max(scores)}, 最低: {min(scores)}")
场景2:词频统计
text = "苹果 香蕉 苹果 橙子 香蕉 苹果"
words = text.split()
# 统计词频
word_count = {}
for word in words:
    word_count[word] = word_count.get(word, 0) + 1
# 按频率排序
sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
print(sorted_words)  # [('苹果', 3), ('香蕉', 2), ('橙子', 1)]

07

总结
操作
方法
说明
增
append()insert()extend()
添加元素
删
delremove()pop()clear()
删除元素
改
list[i] = x
直接赋值修改
查
list[i]incount()index()
查询元素
今天的分享就到这里啦!Python列表真的是编程中最常用的数据结构之一,熟练掌握它能让你的代码更简洁、更高效。
大家平时用Python处理什么场景比较多呢?有没有什么列表使用的心得?欢迎在评论区聊聊~

●别被算法吓退!从0到理解时间复杂度,我只用了1天

●Python文件操作:新手必踩的5个坑,我都帮你趟平了!

●Python面向对象入门:实例方法、类方法、静态方法

●别再复制粘贴了!Python函数入门,看这一篇就够了

如果你也在学Python或者想入局AI赛道,可以找我cuizh002,我有一些基础的学习资料可以分享给你~
我们下期间!

最新文章

随机文章