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

news/2024/9/23 3:12:58/

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

摘要

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

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


列表——万能的数据容器

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

定义列表

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

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

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

访问列表元素

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

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

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

修改列表元素

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

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

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

添加和删除元素

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

python"># 添加元素
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']

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

列表切片

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

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

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

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

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

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

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

访问元组元素

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

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

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

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

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

元组解包

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

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

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

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

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

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

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

集合操作

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

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

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

python">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)是键值对的无序集合,用于存储映射关系。字典用花括号{}表示,键和值之间用冒号分隔。

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

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

访问和修改字典元素

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

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

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

添加和删除字典元素

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

python"># 添加元素
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'}
字典遍历

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

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

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

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

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

定义学生类
python">class Student:def __init__(self, name, age, major, grades):self.name = nameself.age = ageself.major = majorself.grades = gradesdef add_grade(self, course, grade):self.grades[course] = gradedef get_average_grade(self):return sum(self.grades.values()) / len(self.grades)
创建学生对象
python">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})
]
操作学生对象
python"># 添加成绩
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 的世界还有更多有趣的内容等着你!

在这里插入图片描述


http://www.ppmy.cn/news/1505702.html

相关文章

JeecgBoot低代码平台简单记录

BasicModal弹窗 Usage 由于弹窗内代码一般作为单文件组件存在,也推荐这样做,所以示例都为单文件组件形式 注意v-bind"$attrs"记得写,用于将弹窗组件的attribute传入BasicModal组件 attribute:是属性的意思,…

【学习笔记】Day 4 - Day 5

一、进度概述 1、新机环境配置 2、《地震勘探原理》第一章 3、对 “DL-FWI 研究方向展望” 组会的一些想法 二、详情 1、新机环境配置 配置新机环境着实耗了较多时间,导致理论进度推进较慢。 2、《地震勘探原理》第一章学习笔记 相关笔记在另一篇…

机器人抓取与操作的挑战与进展——挑战赛角度

从竞赛中看机器人抓取与操作的挑战与进展 前言一、国际机器人竞赛有哪些?二、感知方面的挑战与进展二、抓取方面的挑战与进展三、操作方面的挑战与进展总结 前言 本文根据最近的机器人抓取和操作挑战赛 (Robotic Grasping andManipulation Competitions (RGMCs))&a…

【开源分享】2024最新php在线客服系统源码|聊天系统 附搭建教程

源码的主要特色 自动回复和机器人知识库:通过后台设置机器人知识库,系统可以根据关键词自动回复用户,提高响应速度和服务效率。 内容过滤:支持设置违禁词,避免接收包含不良信息的用户消息,维护平台健康。…

白骑士的PyCharm教学实战项目篇 4.2 数据分析与可视化

系列目录 上一篇:白骑士的PyCharm教学实战项目篇 4.1 Web应用开发 数据分析和可视化是现代数据科学和工程中的重要环节。借助PyCharm的强大功能,数据分析与可视化的开发工作变得更加高效和便捷。本文将详细介绍如何在PyCharm中进行数据分析工具的集成与…

深度IP转换器 Windows安装指南

在安装深度IP转换器之前,请确保您的Windows系统符合软件的最低要求,并且已经备份了重要数据。以下是在Windows系统上安装深度IP转换器的详细步骤: 一、下载软件 打开深度IP转换器的官方网站或使用可靠的软件下载平台。 在网站上找到“下载”或…

常见中间件漏洞(二、WebLogin合集)

目录 二、WebLogic Weblogic介绍 2.1 后台弱口令GetShell 漏洞描述 影响范围 环境搭建 漏洞复现 2.2 CVE-2017-3506 漏洞描述 影响版本 环境搭建 漏洞复现 2.3 CVE-2019-2725 漏洞描述 影响版本 环境搭建 漏洞复现 2.4 CVE-2018-2628 漏洞描述 漏洞影响 环…

八股文”在实际工作中的作用:敲门砖还是空谈?

文章目录 每日一句正能量前言“八股文”对招聘过程的影响“八股文”作为基础知识的筛选器面试中的“八股文”比重平衡“八股文”与实际编程能力“八股文”导致的面试准备策略变化“八股文”与实际工作技能的关联性对“八股文”依赖的反思创新面试方法的探索“八股文”在不同公司…