03_数据结构

第3课:数据结构

课程目标

  • 掌握Python的基本数据结构:列表、元组、字典、集合
  • 学习字符串的高级操作方法
  • 理解不同数据结构的特点和适用场景

1. 列表(List)

1.1 列表的创建和基本操作

# 创建列表
fruits = ["苹果", "香蕉", "橙子"]
numbers = [1, 2, 3, 4, 5]# 列表索引(从0开始)
print(fruits[0])      # 苹果
print(fruits[-1])     # 橙子(最后一个元素)# 列表切片
print(fruits[1:3])    # ['香蕉', '橙子']
print(fruits[:2])     # ['苹果', '香蕉']

1.2 列表的常用方法

fruits = ["苹果", "香蕉", "橙子"]# 添加元素
fruits.append("葡萄")           # 在末尾添加
fruits.insert(1, "梨子")       # 在指定位置插入# 删除元素
removed = fruits.pop()          # 删除并返回最后一个元素
fruits.remove("香蕉")           # 删除指定元素# 排序
fruits.sort()                   # 升序排序
fruits.reverse()                # 反转列表

2. 元组(Tuple)

2.1 元组的特点和创建

# 元组是不可变的列表
coordinates = (10, 20)
person = ("张三", 25, "北京")# 元组解包
x, y = coordinates
name, age, city = person
print(f"{name}今年{age}岁,住在{city}")

3. 字典(Dictionary)

3.1 字典的创建和基本操作

# 创建字典
student = {"name": "张三","age": 20,"grades": [85, 90, 88]
}# 访问元素
print(student["name"])           # 张三
print(student.get("age"))        # 20# 添加和修改元素
student["phone"] = "13800138000"
student["age"] = 21

4. 集合(Set)

4.1 集合的特点和创建

# 集合是无序、不重复的元素集合
fruits_set = {"苹果", "香蕉", "橙子", "苹果"}
numbers_set = {1, 2, 3, 4, 5}# 集合运算
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}union = set1 | set2              # 并集
intersection = set1 & set2       # 交集
difference = set1 - set2         # 差集

5. 字符串的高级操作

5.1 字符串方法

text = "  Hello, World!  "# 大小写转换
print(text.upper())      # "  HELLO, WORLD!  "
print(text.lower())      # "  hello, world!  "# 去除空白
print(text.strip())      # "Hello, World!"# 查找和替换
print(text.find("World"))        # 8
print(text.replace("World", "Python"))

6. 练习项目

项目:学生成绩管理系统

print("=== 学生成绩管理系统 ===")students = {}while True:print("\n请选择操作:")print("1. 添加学生")print("2. 录入成绩")print("3. 查询成绩")print("4. 退出")choice = input("请输入选择(1-4):")if choice == "1":student_id = input("请输入学号:")name = input("请输入姓名:")age = int(input("请输入年龄:"))students[student_id] = {"name": name,"age": age,"grades": {}}print("学生添加成功!")elif choice == "2":student_id = input("请输入学号:")if student_id in students:subject = input("请输入科目:")score = float(input("请输入成绩:"))students[student_id]["grades"][subject] = scoreprint("成绩录入成功!")else:print("学号不存在!")elif choice == "3":student_id = input("请输入学号:")if student_id in students:student = students[student_id]print(f"\n学生信息:{student['name']},年龄:{student['age']}")if student['grades']:print("成绩:")for subject, score in student['grades'].items():print(f"  {subject}: {score}")else:print("暂无成绩记录")else:print("学号不存在!")elif choice == "4":print("感谢使用!")breakelse:print("无效选择,请重新输入!")

7. 总结

本节课我们学习了:

  • 列表的创建、操作和常用方法
  • 元组的特点和不可变性
  • 字典的键值对结构和操作
  • 集合的无序性和去重特性
  • 字符串的高级操作方法

8. 下节课预告

下节课我们将学习:

  • 函数的定义和调用
  • 参数传递和返回值
  • 作用域和命名空间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94309.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE】多线程 -- CAS机制(比较并交换)

目录CAS是什么CAS的应用实现原子类实现自旋锁ABA问题ABA问题概述ABA问题引起的BUG解决方案CAS是什么 CAS (compare and swap) 比较并交换,CAS 是物理层次支持程序的原子操作。说起原子性,这就设计到线程安全问题,在代码的层面为了解决多线程…

The United Nations Is Already Dead

The United Nations Is Already Dead When children in Gaza rummage through rubble for food, when UN-run schools are reduced to dust, when the Security Council cannot even pass the mildest ceasefire resolution—blocked by a single veto— we must confront a br…

Kubernetes v1.34 前瞻:资源管理、安全与可观测性的全面进化

预计正式发布:2025年8月底 | 分类:Kubernetes 随着2025年8月底的临近,Kubernetes社区正紧锣密鼓地准备下一个重要版本——v1.34的发布。本次更新并非简单的功能叠加,而是在资源管理、安全身份、可观测性和工作负载控制等核心领域的…

用 Bright Data MCP Server 构建实时数据驱动的 AI 情报系统:从市场调研到技术追踪的自动化实战

前言 本文通过两个真实场景(云服务商对比与 AIGC 技术追踪),展示了如何使用 Bright Data MCP Server 与 Lingma IDE 构建一个具备实时网页数据抓取、结构化分析与自动化报告生成能力的 AI 工作流。通过简单的 API 调用与 JSON 配置&#xff…

牛顿第二定律的所有表达方式:1、线性表达 2、圆形表达 3、双曲线表达 4、抛物线表达5、数列表达

牛顿第二定律是经典力学中的核心定律,表述为:物体的加速度与所受合力成正比,与质量成反比,方向与合力方向相同。其基本矢量形式为: F⃗ma⃗ \vec{F} m \vec{a} Fma 其中,F⃗\vec{F}F 是合力(单…

【开发日记】SpringBoot 实现支持多个微信小程序的登录

在实际业务场景中,需要一个后台同时支持多个微信小程序的登录。例如,企业有多个不同业务的小程序,但希望统一在同一个后台系统里进行用户认证和数据处理。这时候,我们就需要一个灵活的方式来管理多个小程序的 appid 和 secret&…

Docker 容器(一)

Docker一、Docker是什么1.什么是Docker2.Docker特点3.比较虚拟机和容器二、Docker安装1.Docker​​三大核心组件​​2.安装步骤(Ubuntu)3.阿里云镜像加速三、Docker镜像1.什么是镜像2.UnionFS(联合文件系统)3.Docker镜像加载原理4…

容器安全实践(二):实践篇 - 从 `Dockerfile` 到 Pod 的权限深耕

在上一篇《容器安全实践(一):概念篇》中,我们深入探讨了容器安全的底层原理,并纠正了“容器天生安全”的误解。我们了解了 root 用户的双重身份,以及特权容器的危险性。 然而,仅仅了解这些概念…

c#_数据持久化

数据持久化架构 数据是应用程序的命脉。持久化架构的选择直接决定了应用的性能、可扩展性、复杂度和维护成本。本章将深入探讨.NET生态中主流的数据访问模式、工具和策略,帮助你为你的系统做出最明智的数据决策。5.1 ORM之争:Entity Framework Core深度剖…

996引擎-骰子功能

996引擎-骰子功能 测试NPC QF回调函数 结果 参考资料 在测试NPC播放骰子动画。 播放前需要先设置骰子点数 测试NPC [[骰子的显示顺序和点数 对应 私人变量 D0 D1 D2 D3 D4 D5]] -- NPC入口函数 function main(player)-- 骰子共6个,设置骰子点数后,再执行摇骰子,否则没动画…

Vue 3多语言应用开发实战:vue-i18n深度解析与最佳实践

📖 概述 Vue 3 国际化(i18n)是构建多语言应用的核心需求。本文档介绍 Vue 3 中实现国际化的主流方案,包括 vue-i18n、Vite 插件方案和自定义解决方案。 🎯 主流方案对比 方案优点缺点适用场景vue-i18n功能完整、生态成…

港口船舶流量统计准确率↑27%!陌讯多模态融合算法实战解析

一、行业痛点:港口船舶流量统计的三大核心难题智慧港口建设中,船舶流量统计是泊位调度、航道管理与安全预警的核心数据支撑,但传统方案受场景特性限制,长期存在难以解决的技术瓶颈。据《2023 年中国港口智能化发展报告》显示&…

Shell脚本的基础知识学习

Shell 脚本是 Linux/Unix 系统的核心自动化工具,能够完成以下任务: (1)批量操作:一键安装软件、批量处理文件(重命名、压缩、备份等)。 (2)系统管理:监控资源…

k8s部署,pod管理,控制器,微服务,集群储存,集群网络及调度,集群认证

k8s部署 k8s中容器的管理方式 ​ Kubernetes集群创建方式 centainerd 默认情况下,K8S在创建集群时使用的方式 docker docker使用的普记录最高,虽然K8S在1.24版本后已经费力了kubelet对docker的支持,但时可以借助cri-docker方式来实现集…

JAVA限流方法

在 Java 项目中限制短时间内的频繁访问(即接口限流),是保护系统资源、防止恶意攻击或高频请求导致过载的重要手段。常见实现方案可分为单机限流和分布式限流,以下是具体实现方式:一、核心限流算法无论哪种方案&#xf…

性能比拼: .NET (C#) vs. Fiber (Go)

本内容是对知名性能评测博主 Anton Putra .NET (C#) vs. Fiber (Go): Performance (Latency - Throughput - Saturation - Availability) 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 在本视频中,我们将对比 C# 与 .NET 框架和 Golang 的表现。在第一个…

信誉代币的发行和管理机制是怎样的?

信誉代币的发行与管理机制是区块链技术与经济模型深度融合的产物,其核心在于通过代码和社区共识构建可量化、可验证的信任体系。以下从技术架构、经济模型、治理机制三个维度展开分析,并结合具体案例说明:一、发行机制:行为即价值…

神经网络|(十二)概率论基础知识-先验/后验/似然概率基本概念

【1】引言 前序学习进程中,对贝叶斯公式曾经有相当粗糙的回归,实际上如果我们看教科书或者网页,在讲贝叶斯公式的时候,会有几个名词反复轰炸:先验概率、后验概率、似然概率。 今天就来把它们解读一下,为以…

使用UE5开发《红色警戒3》类战略养成游戏的硬件配置指南

从零开始,学习 虚幻引擎5(UE5),开始游戏开发之旅!本文章仅提供学习,切勿将其用于不法手段!开发类似《红色警戒3》级别的战略养成游戏,其硬件需求远超普通2D或小型3D项目——这类游戏…

Vue2+Vue3前端开发_Day12-Day14_大事件管理系统

参考课程: 【黑马程序员 Vue2Vue3基础入门到实战项目】 [https://www.bilibili.com/video/BV1HV4y1a7n4] ZZHow(ZZHow1024) 项目收获 Vue3 composition APIPinia / Pinia 持久化处理Element Plus(表单校验,表格处理,组件封装&#xff09…