数据结构就像「收纳数据的各种容器」🗃️,不同的容器适合存放不同类型的数据。让我们用最生活化的方式认识它们吧~
一、列表(List)→ 购物车 🛒
特点:
- 有顺序的容器
- 可以随时增删改
- 用方括号
[]
表示
# 创建购物车 cart = ["🍎苹果", "📚笔记本", "✏️铅笔"] # 常用操作 cart.append("☕咖啡") # 添加到最后 → ["苹果", "笔记本", "铅笔", "咖啡"] cart[1] = "🖊️钢笔" # 修改第二个物品 → ["苹果", "钢笔", "铅笔", "咖啡"] print(cart[0]) # 查看第一个物品 → 苹果 print(len(cart)) # 查看物品数量 → 4 # 小练习:尝试创建一个你的购物清单吧!
二、字典(Dict)→ 通讯录 📱
特点:
- 用「键值对」存储数据(名字 → 电话)
- 用花括号
{}
表示 - 查找速度超快
# 创建通讯录 contacts = { "妈妈": "13800138000", "小明": "15912345678", "快递": "95338" } # 常用操作 contacts["物业"] = "87654321" # 添加新联系人 print(contacts["小明"]) # 查小明的电话 → 15912345678 del contacts["快递"] # 删除快递电话 # 小练习:创建一个你的好友信息表(名字: 年龄)
三、元组(Tuple)→ 固定套餐 🍱
特点:
- 创建后不能修改
- 用圆括号
()
表示 - 适合存储固定数据
# 固定套餐配置 set_meal = ("汉堡", "薯条", "可乐") print(set_meal[1]) # 查看第二个菜品 → 薯条 # set_meal[1] = "鸡块" # ❌ 会报错,不能修改! # 特殊技巧:交换两个变量的值 a = 10 b = 20 a, b = b, a # 现在a=20, b=10 # 小练习:记录你的生日(年,月,日)
四、集合(Set)→ 抽奖箱 🎟️
特点:
- 元素不会重复
- 用花括号
{}
或 set() 创建 - 可以求交集、并集
# 创建抽奖箱 lucky_numbers = {2, 5, 8, 5} # 自动去重 → {2,5,8} # 常用操作 lucky_numbers.add(10) # 添加新号码 print(8 in lucky_numbers) # 检查是否有8 → True # 对比两个用户的兴趣标签 A = {"电影", "音乐", "游戏"} B = {"游戏", "运动", "读书"} print(A & B) # 共同兴趣 → {"游戏"} # 小练习:统计你的好友中有多少不同的城市
五、对比表格 📊
结构 | 可变性 | 顺序 | 重复元素 | 典型用途 |
---|---|---|---|---|
列表 | ✅ | ✅ | ✅ | 购物清单、待办事项 |
字典 | ✅ | ❌ | 键不重复 | 用户信息、配置参数 |
元组 | ❌ | ✅ | ✅ | 坐标、数据库记录 |
集合 | ✅ | ❌ | ❌ | 标签、唯一值统计 |
六、综合练习:学生管理系统 🧑🎓
students = [ { "name": "小明", "age": 18, "courses": ["数学", "英语"] }, { "name": "小红", "age": 17, "courses": ["语文", "历史"] } ] # 添加新学生 new_student = { "name": "小刚", "age": 19, "courses": ["物理"] } students.append(new_student) # 查找小红的年龄 for stu in students: if stu["name"] == "小红": print("小红的年龄:", stu["age"]) # 统计所有课程(用集合去重) all_courses = set() for stu in students: all_courses.update(stu["courses"]) print("所有课程:", all_courses)
总结:
- 需要随时修改数据 → 选列表或字典
- 数据不能变 → 用元组
- 需要避免重复 → 用集合
- 记住这个口诀:列表装同类,字典找关系,元组保不变,集合去重复 🚀
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于