3、谁说列表只能加减删改?教你玩出花火🔥

85 阅读2分钟

👊 用列表做 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']}")

输出:

image.png

💥 项目二:数据过滤与提炼器

🎯 目标二:提取所有点赞超过 50 的用户名称

popular_users = [p["user"] for p in posts if p["likes"] > 50]
print("🔥 热门用户:", popular_users)

输出:

image.png


🧩 项目三:拆分点赞区间段

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]}")

输出:

image.png


💡 拓展技巧:列表推导式小妙招

✅ 反转列表

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]

🎯 实战升级题(思考思考)

  1. 尝试对 posts 进行“点赞均值”计算
  2. 统计点赞最多的用户是谁
  3. 把每个用户点赞提升 10%,保留 2 位小数(新列表)

✅ 总结

列表不仅仅是容器,它是 Python 中数据处理的利器,你想怎么“切片”,它就能怎么“就范”。