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

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期预告:

下期我们将介绍:

  • 函数的定义与使用

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

  • 匿名函数与作用域

相关文章:

  • 从代码学习深度学习 - 优化算法 PyTorch 版
  • MPTCP 的吞吐困局
  • ICS丨Chapter 1 Introduction to Computer System
  • MFC文件-屏幕录像
  • C 语言联合与枚举:自定义类型的核心解析
  • [Swift]Xcode模拟器无法请求http接口问题
  • Qt unknown module(s) in qt:serialport解决方法
  • Oracle Recovery Tools修复ORA-600 6101/kdxlin:psno out of range故障
  • C++11新增语法:列表初始化
  • 实现AWS Lambda函数安全地请求企业内部API返回数据
  • [每周一更]-(第140期):sync.Pool 使用详解:性能优化的利器
  • Python制作简易PDF查看工具PDFViewerV1.0查找功能优化
  • 【文件操作与IO】详细解析文件操作与IO (二)
  • 零、HarmonyOS应用开发者基础学习总览
  • Cursor新版0.49.x发布
  • 开源Midjourney替代方案:企业级AI绘画+PPT生成系统+AI源码
  • YOLO拓展-锚框(anchor box)详解
  • 深入理解C++ 中的vector容器
  • 机器学习核心算法全解析:从基础到进阶的 18 大算法模型
  • 点云数据处理开源C++方案
  • 观察|中日航线加速扩容,航空公司如何抓住机会?
  • 黄仁勋结束年内第二次中国行:关键时刻,重申对中国市场承诺
  • 中央和国家机关工委建立健全整治形式主义为基层减负长效机制
  • 涉嫌骗取贷款,洪九果品创始人夫妇及多名高管被采取刑事强制措施
  • 讲座预告|把握可持续信息披露新机遇
  • 伊朗外交部:美矛盾立场被视为缺乏谈判的严肃性和诚意