👊 用列表做 CRUD 太无聊?这篇告诉你,列表还能构造排行榜、批量处理数据、玩转组合拆分和推导式魔法!
✅ 本文目标
- 掌握
list常用操作(增删改查) - 学会列表排序、切片、推导式
- 编写一个“Top 排行榜 + 高级过滤器”
🧠 基础回顾:列表操作全套姿势
# 增
lst = []
lst.append(10)
lst.extend([20, 30])
lst.insert(1, 15) # 插入在位置1
# 删
lst.remove(20)
del lst[0]
value = lst.pop() # 删除并返回最后一个
# 改
lst[0] = 99
# 查
for item in lst:
print(item)
🎲 项目一:构建一个“榜单分析器”
假设我们有如下“用户投稿点赞数据”:
posts = [
{"user": "A", "likes": 88},
{"user": "B", "likes": 12},
{"user": "C", "likes": 101},
{"user": "D", "likes": 65},
{"user": "E", "likes": 5}
]
🎯 目标一:找出点赞最多的前3位
top3 = sorted(posts, key=lambda p: p["likes"], reverse=True)[:3]
for idx, item in enumerate(top3, 1):
print(f"TOP{idx}: 用户 {item['user']},点赞 {item['likes']}")
输出:
💥 项目二:数据过滤与提炼器
🎯 目标二:提取所有点赞超过 50 的用户名称
popular_users = [p["user"] for p in posts if p["likes"] > 50]
print("🔥 热门用户:", popular_users)
输出:
🧩 项目三:拆分点赞区间段
segments = {
"高热": [],
"一般": [],
"冷门": []
}
for p in posts:
if p["likes"] >= 80:
segments["高热"].append(p)
elif p["likes"] >= 30:
segments["一般"].append(p)
else:
segments["冷门"].append(p)
for k, v in segments.items():
print(f"📊 {k}(共 {len(v)} 人):{[x['user'] for x in v]}")
输出:
💡 拓展技巧:列表推导式小妙招
✅ 反转列表
lst[::-1]
✅ 嵌套推导式
matrix = [[1,2,3],[4,5,6],[7,8,9]]
flat = [x for row in matrix for x in row]
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
✅ 条件组合
nums = [1, 2, 3, 4, 5]
even_squares = [x**2 for x in nums if x % 2 == 0]
# [4, 16]
🎯 实战升级题(思考思考)
- 尝试对 posts 进行“点赞均值”计算
- 统计点赞最多的用户是谁
- 把每个用户点赞提升 10%,保留 2 位小数(新列表)
✅ 总结
列表不仅仅是容器,它是 Python 中数据处理的利器,你想怎么“切片”,它就能怎么“就范”。