数据结构就像「收纳数据的各种容器」🗃️,不同的容器适合存放不同类型的数据。让我们用最生活化的方式认识它们吧~
一、列表(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)
总结:
- 需要随时修改数据 → 选列表或字典
- 数据不能变 → 用元组
- 需要避免重复 → 用集合
- 记住这个口诀:列表装同类,字典找关系,元组保不变,集合去重复 🚀
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于