当前位置: 首页 > ai >正文

Python语法系列博客 · 第3期 数据结构入门(列表、元组、字典、集合)

上一期小练习解答(第2期回顾)

✅ 练习1:判断一个数是正数、负数还是零
num = float(input("请输入一个数:"))
if num > 0:print("正数")
elif num < 0:print("负数")
else:print("零")

✅ 练习2:求1~100的偶数和

total = 0
for i in range(1, 101):if i % 2 == 0:total += i
print("1到100的偶数和为:", total)

✅ 练习3:密码输入,最多三次

correct_password = "123456"
for attempt in range(3):pwd = input("请输入密码:")if pwd == correct_password:print("欢迎登录!")breakelse:print("密码错误!")
else:print("密码错误三次,拒绝访问!")

本期主题:Python常见数据结构

在Python中,内置了几种强大而常用的数据结构,用于存储和组织数据。本期我们重点讲解四种基础结构:

  • 列表(List)

  • 元组(Tuple)

  • 字典(Dict)

  • 集合(Set)

3.1 列表 List

列表是一种有序、可变的序列,可以存放任何类型的对象。

fruits = ["apple", "banana", "cherry"]
print(fruits[0])      # 输出 apple
fruits.append("pear") # 添加元素
fruits.remove("banana") # 移除元素
常用操作:
操作示例
添加元素append(x)insert(i, x)
删除元素remove(x)pop(i)
排序sort()reverse()
切片list[1:3]
遍历for item in list:

3.2 元组 Tuple

元组和列表类似,但它是不可变的,创建后不能修改,常用于存储固定数据。

point = (3, 5)
print(point[0])  # 输出 3
特点:
  • 用圆括号 () 定义

  • 不可修改(immutable)

  • 可以用于字典的键、集合的元素等不可变场景

3.3 字典 Dict

字典是一种**键-值对(key-value)**的数据结构。

person = {"name": "Tom", "age": 25}
print(person["name"])    # 输出 Tom
person["age"] = 26       # 修改值
person["gender"] = "男"  # 添加新键值
常用操作:
操作示例
访问值dict[key]get(key)
添加/修改dict[key] = value
删除del dict[key]
遍历for k, v in dict.items()

3.4 集合 Set

集合是一种无序、不可重复的元素集合,适合去重、集合运算。

a = {1, 2, 3}
b = {3, 4, 5}
print(a | b)  # 并集:{1, 2, 3, 4, 5}
print(a & b)  # 交集:{3}
特点:
  • 用花括号 {}set() 创建

  • 不允许重复元素

  • 支持集合运算(并集、交集、差集)

3.5 四者对比总结:

数据结构可变性是否有序是否允许重复适用场景
List可变有序常规列表存储、迭代
Tuple不可变有序不可变数据打包、函数返回值
Dict可变无序(3.6+有序)键唯一键值对数据、高效查找
Set可变无序去重、集合数学运算

本期小练习:

  1. 创建一个列表,添加5个名字,然后打印所有名字(使用循环)。

  2. 定义一个字典,记录某学生的姓名、年龄、成绩,并打印出这些信息。

  3. 给定两个集合 {1, 2, 3, 4}{3, 4, 5, 6},求它们的并集、交集和差集。

小结:

本期介绍了Python中四种常见的数据结构,理解这些数据结构是写好程序的基础。在后续的学习中,我们会大量用到这些结构来组织和处理数据。

第4期预告:

下期我们将介绍:

  • 函数的定义与使用

  • 参数传递、返回值、默认参数

  • 匿名函数与作用域

http://www.xdnf.cn/news/359.html

相关文章:

  • LeetCode 239 滑动窗口最大值
  • 【深度学习—李宏毅教程笔记】Transformer
  • 探索 .bat 文件:自动化任务的利器
  • 关于数字信号与图像处理——基于Matlab的图像增强技术
  • 将软件架构风格定义为数据流风格,调用返回风格,独立构件风格,虚拟机风格和以数据为为中心这五种风格的依据是什么?请介绍这五种风格
  • 区块链木材业务服务平台:商贸物流新变革
  • 模态双侠闯江湖:SimTier 分层破局,MAKE 智炼新知
  • 不确定与非单调推理的可信度方法
  • 【C++算法】67.栈_基本计算器 II
  • IntelliJ IDEA右键快捷方式设置方法
  • 从 LabelImg 到 Label Studio!AI 数据标注神器升级,Web 版真香
  • 8 编程笔记全攻略:Markdown 语法精讲、Typora 编辑器全指南(含安装激活、基础配置、快捷键详解、使用技巧)
  • VsCode搭建
  • Spring Boot + Caffeine:打造高性能缓存解决方案
  • 2.凸包优化求解
  • Viewer.js的使用方法
  • JDBC 数据库连接全解析:从驱动配置到工具类封装
  • yolov8的数据处理lableimg的安装以及使用
  • 黑马商城(五)微服务保护和分布式事务
  • 【Linux篇】探索进程间通信:如何使用匿名管道构建高效的进程池
  • PHP实现简单的爬虫功能
  • 不规则曲面上两点距离求取
  • Replicate Python client
  • 中间件--ClickHouse-12--案例-1-日志分析和监控
  • Datawhale AI春训营学习笔记
  • 吴恩达强化学习复盘(2)K-Means初始化|K的选择|算法优化
  • 基于模板匹配的信用卡号码识别系统
  • Fastdata极数:全球AR/VR行业发展趋势报告2025
  • C#.net core部署IIS
  • 【愚公系列】《Python网络爬虫从入门到精通》056-Scrapy_Redis分布式爬虫(Scrapy-Redis 模块)