3.1 Python 列表、元组、集合、字典

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:
工💗重💗hao💗:野老杂谈
⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.
⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。
⭐️ 全流程数据技术实战指南:全面讲解从数据采集到数据可视化的整个过程,掌握构建现代化数据平台和数据仓库的核心技术和方法。
⭐️ 构建全面的数据指标体系:通过深入的理论解析、详细的实操步骤和丰富的案例分析,为读者提供系统化的指导,帮助他们构建和应用数据指标体系,提升数据驱动的决策水平。
⭐️《遇见Python:初识、了解与热恋》 :涵盖了Python学习的基础知识、进阶技巧和实际应用案例,帮助读者从零开始逐步掌握Python的各个方面,并最终能够进行项目开发和解决实际问题。

摘要

Python 中的列表、元组、集合和字典是数据结构的四大金刚,它们各具特色,为我们处理不同类型的数据提供了极大的灵活性和便利性。本文将通过通俗易懂的语言和幽默的故事性,详细讲解这四种数据结构的定义、操作和应用场景,帮助读者掌握 Python 中最常用的数据结构。

标签: Python基础、数据结构、列表、元组、集合、字典


列表——万能的数据容器

在 Python 的世界里,列表(list)就像一个神奇的包袱,可以装各种各样的东西,无论是数字、字符串,还是其他列表。列表是有序的、可变的,可以随时添加、删除和修改元素。

定义列表

创建列表非常简单,只需要使用方括号[]并将元素用逗号分隔开。

fruits = ["apple", "banana", "cherry"]
print(fruits)  # 输出:['apple', 'banana', 'cherry']

这个列表里装了三种水果,就像我们的水果篮子一样。

访问列表元素

可以通过索引访问列表中的元素,索引从0开始。

print(fruits[0])  # 输出:apple
print(fruits[1])  # 输出:banana
print(fruits[2])  # 输出:cherry

就像我们拿水果时,可以按照顺序一个个拿出来。

修改列表元素

列表是可变的,这意味着我们可以修改其中的元素。

fruits[1] = "blueberry"
print(fruits)  # 输出:['apple', 'blueberry', 'cherry']

这个例子中,我们把香蕉换成了蓝莓。

添加和删除元素

列表提供了多种方法来添加和删除元素。

# 添加元素
fruits.append("orange")
print(fruits)  # 输出:['apple', 'blueberry', 'cherry', 'orange']

# 插入元素
fruits.insert(1, "grape")
print(fruits)  # 输出:['apple', 'grape', 'blueberry', 'cherry', 'orange']

# 删除元素
fruits.remove("cherry")
print(fruits)  # 输出:['apple', 'grape', 'blueberry', 'orange']

就像我们往篮子里加水果,或者把不喜欢的水果拿出来。

列表切片

列表切片是获取列表中部分元素的强大工具。

print(fruits[1:3])  # 输出:['grape', 'blueberry']

这个例子中,我们取出第二个到第三个水果。

元组——不可变的有序集合

元组(tuple)和列表很相似,但有一个重要区别:元组是不可变的。一旦创建,就不能修改。元组使用圆括号()定义。

定义元组
colors = ("red", "green", "blue")
print(colors)  # 输出:('red', 'green', 'blue')

元组里的颜色像彩虹一样美丽,但不能改变顺序。

访问元组元素

和列表一样,可以通过索引访问元组元素。

print(colors[0])  # 输出:red
print(colors[1])  # 输出:green
print(colors[2])  # 输出:blue
元组的不可变性

元组的不可变性意味着你不能修改其中的元素。

# 试图修改元组会导致错误
# colors[1] = "yellow"  # TypeError: 'tuple' object does not support item assignment

这种特性使得元组在需要不可变数据时非常有用,比如地理坐标、数据库记录等。

元组解包

元组支持解包操作,可以将元组中的元素直接赋值给多个变量。

x, y, z = colors
print(x)  # 输出:red
print(y)  # 输出:green
print(z)  # 输出:blue

这就像打开一个礼盒,一次取出所有的礼物。

集合——无序的不重复元素

集合(set)是无序的不重复元素集合,用于去重和集合运算。集合用花括号{}表示。

定义集合
numbers = {1, 2, 3, 4, 5}
print(numbers)  # 输出:{1, 2, 3, 4, 5}

集合里的元素就像我们收集的邮票,每一张都独一无二。

集合操作

集合支持多种操作,比如添加和删除元素。

# 添加元素
numbers.add(6)
print(numbers)  # 输出:{1, 2, 3, 4, 5, 6}

# 删除元素
numbers.remove(3)
print(numbers)  # 输出:{1, 2, 4, 5, 6}
集合运算

集合支持多种集合运算,如交集、并集和差集。

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 并集
print(set1 | set2)  # 输出:{1, 2, 3, 4, 5}

# 交集
print(set1 & set2)  # 输出:{3}

# 差集
print(set1 - set2)  # 输出:{1, 2}

这些运算就像处理两个不同的邮票收藏,找出共有的、不同的邮票。

字典——键值对的无序集合

字典(dict)是键值对的无序集合,用于存储映射关系。字典用花括号{}表示,键和值之间用冒号分隔。

定义字典
student = {"name": "Alice", "age": 25, "major": "Computer Science"}
print(student)  # 输出:{'name': 'Alice', 'age': 25, 'major': 'Computer Science'}

字典就像一部电话簿,通过名字找到对应的电话号码。

访问和修改字典元素

可以通过键访问和修改字典元素。

print(student["name"])  # 输出:Alice

student["age"] = 26
print(student)  # 输出:{'name': 'Alice', 'age': 26, 'major': 'Computer Science'}

这就像更新电话簿里的电话号码。

添加和删除字典元素

字典允许随时添加和删除元素。

# 添加元素
student["grade"] = "A"
print(student)  # 输出:{'name': 'Alice', 'age': 26, 'major': 'Computer Science', 'grade': 'A'}

# 删除元素
del student["major"]
print(student)  # 输出:{'name': 'Alice', 'age': 26, 'grade': 'A'}
字典遍历

可以遍历字典的键、值或键值对。

# 遍历键
for key in student:
    print(key)

# 遍历值
for value in student.values():
    print(value)

# 遍历键值对
for key, value in student.items():
    print(key, value)

这就像逐个查看电话簿里的每个条目,看看名字和电话号码。

综合示例——学生管理系统

让我们通过一个综合示例,将列表、元组、集合和字典结合起来,创建一个简单的学生管理系统。

定义学生类
class Student:
    def __init__(self, name, age, major, grades):
        self.name = name
        self.age = age
        self.major = major
        self.grades = grades

    def add_grade(self, course, grade):
        self.grades[course] = grade

    def get_average_grade(self):
        return sum(self.grades.values()) / len(self.grades)
创建学生对象
students = [
    Student("Alice", 25, "Computer Science", {"Math": 90, "Science": 85}),
    Student("Bob", 22, "Mathematics", {"Math": 95, "Physics": 88}),
    Student("Charlie", 23, "Physics", {"Physics": 92, "Chemistry": 80})
]
操作学生对象
# 添加成绩
students[0].add_grade("English", 88)
students[1].add_grade("History", 80)

# 计算平均成绩
for student in students:
    print(f"{student.name}'s average grade: {student.get_average_grade()}")

这个示例展示了如何将列表、字典和类结合起来,创建一个简单的学生管理系统。

总结——数据结构的魔力

通过本文的讲解,我们了解了 Python 中列表、元组、集合和字典的基本概念、操作和应用场景。这些数据结构是 Python 编程中不可或缺的工具,帮助我们高效地存储和处理数据。

希望你能通过本文轻松掌握这些数据结构,并在实际编程中灵活运用它们。记住,编程就像搭积木,数据结构是你手中的积木块,利用它们,你可以构建出无穷无尽的精彩程序。继续探索吧,Python 的世界还有更多有趣的内容等着你!

在这里插入图片描述

  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野老杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值