AI教你学Python 第4天:函数和模块

第四天:数据结构

一、什么是数据结构?

数据结构是计算机科学中用于组织和存储数据的特定方式。良好的数据结构能够提高数据的访问效率、修改频率和管理能力。Python提供了多种内置数据结构,如列表、元组、字典和集合,便于开发者更有效地处理数据。

二、Python中的基本数据结构

1. 列表(List)
  • 定义 :列表是一个有序的可变集合,允许重复元素。使用方括号[]表示。
python 复制代码
# 示例:定义一个列表
fruits = ['apple', 'banana', 'cherry']

# 访问元素
print(fruits[1])  # 输出: banana

# 添加元素
fruits.append('orange')
print(fruits)  # 输出: ['apple', 'banana', 'cherry', 'orange']
  • 基本操作
操作 方法 结果
添加元素 list.append(x) 在末尾添加元素
插入元素 list.insert(i, x) 在指定位置插入元素
删除元素 list.remove(x) 删除第一个匹配项
排序 list.sort() 对列表进行排序
反转 list.reverse() 反转列表元素顺序
列表长度 len(list) 返回列表的长度
2. 示例:列表的常用操作
python 复制代码
numbers = [3, 1, 4, 1, 5, 9]

# 添加
numbers.append(2)
print(numbers)  # 输出: [3, 1, 4, 1, 5, 9, 2]

# 排序
numbers.sort()
print(numbers)  # 输出: [1, 1, 2, 3, 4, 5, 9]

# 反转
numbers.reverse()
print(numbers)  # 输出: [9, 5, 4, 3, 2, 1, 1]
3. 元组(Tuple)
  • 定义 :元组是有序的不可变集合,使用小括号()表示。适合用来存储固定数据。
python 复制代码
# 示例:定义一个元组
colors = ('red', 'green', 'blue')

# 访问元素
print(colors[0])  # 输出: red
  • 基本操作
操作 方法 结果
元素数量 len(tuple) 返回元组的长度
元素索引 tuple.index(x) 返回首次出现的位置
计数 tuple.count(x) 返回某个元素的出现次数
4. 示例:元组的使用
python 复制代码
# 定义一个包含坐标的元组
point = (10, 20)

# 获取坐标
x, y = point
print(f"X坐标: {x}, Y坐标: {y}")  # 输出: X坐标: 10, Y坐标: 20
5. 字典(Dictionary)
  • 定义 :字典是无序的可变集合,使用花括号{}表示,由键(key)和值(value)对组成。
python 复制代码
# 示例:定义一个字典
person = {
    'name': 'Alice',
    'age': 25,
    'city': 'New York'
}

# 访问元素
print(person['name'])  # 输出: Alice
  • 基本操作
操作 方法 结果
添加或更新元素 dict[key] = value 添加新键或更新已有键的值
删除元素 del dict[key] 删除指定键
获取所有键 dict.keys() 返回所有键的视图
获取所有值 dict.values() 返回所有值的视图
获取所有键值对 dict.items() 返回键值对的视图
6. 示例:字典的操作
python 复制代码
# 添加新元素
person['occupation'] = 'Engineer'
print(person)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York', 'occupation': 'Engineer'}

# 删除元素
del person['age']
print(person)  # 输出: {'name': 'Alice', 'city': 'New York', 'occupation': 'Engineer'}
7. 集合(Set)
  • 定义 :集合是无序的可变集合,元素唯一。使用花括号{}表示。
python 复制代码
# 示例:定义一个集合
fruits_set = {'apple', 'banana', 'cherry'}

# 添加元素
fruits_set.add('orange')
print(fruits_set)  # 输出: {'apple', 'banana', 'cherry', 'orange'}

# 删除元素
fruits_set.remove('banana')
print(fruits_set)  # 输出: {'apple', 'cherry', 'orange'}
  • 基本操作
操作 方法 结果
添加元素 set.add(x) 添加元素
删除元素 set.remove(x) 删除指定元素
取交集 set1.intersection(set2) 返回两个集合的交集
取并集 set1.union(set2) 返回两个集合的并集
取差集 set1.difference(set2) 返回在set1但不在set2的元素
8. 示例:集合的操作
python 复制代码
set_a = {1, 2, 3}
set_b = {3, 4, 5}
# 取交集
print(set_a.intersection(set_b))  # 输出: {3}
# 取并集
print(set_a.union(set_b))          # 输出: {1, 2, 3, 4, 5}

三、数据结构选择指南

数据结构 适用场景
列表 需要按顺序存储和访问数据时
元组 存储不需要修改的数据
字典 需要快速查找、插入、删除键值对时
集合 去重和集合运算时

四、数据结构的运行流程图

以下是一个简单的示例展示了对列表和字典进行基本操作的流程图:

复制代码
+---------------------+
|     初始化数据      |
+---------------------+
           |
           V
+---------------------+
|    选择数据结构    |
+---------------------+
           |
           V
+---------------------+
|    添加/更新元素    |
+---------------------+
           |
           V
+---------------------+
|    数据查询或修改   |
+---------------------+
           |
           V
+---------------------+
|     输出结果        |
+---------------------+

五、实际应用示例:购物清单程序

我们可以结合使用各种数据结构创建一个简单的购物清单程序。

python 复制代码
def add_item(shopping_list, item):
    shopping_list.append(item)
    print(f"已添加 {item} 到购物清单。")

def view_list(shopping_list):
    print("购物清单:")
    for item in shopping_list:
        print(f"- {item}")

def remove_item(shopping_list, item):
    if item in shopping_list:
        shopping_list.remove(item)
        print(f"已从购物清单移除 {item}。")
    else:
        print(f"{item} 不在购物清单中。")

# 示例:购物清单操作
shopping_list = []
add_item(shopping_list, '牛奶')
add_item(shopping_list, '面包')
view_list(shopping_list)
remove_item(shopping_list, '牛奶')
view_list(shopping_list)

六、习题

  1. 创建一个包含五个整数的列表,并实现函数来计算和、均值及中位数。
  2. 定义一个包含用户信息的字典,要求能够添加、删除和更新用户信息。
  3. 使用集合实现一个简单的学生管理系统,添加、查找和删除学生记录。

七、总结

在Python中,数据结构是组织和管理数据的基础。选择合适的数据结构可以有效提高程序的性能和可维护性。今天我们讨论了列表、元组、字典和集合的基本操作和特性,以及它们的应用场景。

参考资源


怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!

相关推荐
AI情绪识别开源1 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
ZGIAI1 小时前
ZGI 迭代节点:批量资料的逐项处理
人工智能·架构
ZGIAI1 小时前
ZGI 知识检索:让业务回答有据可查
人工智能·架构
Asize1 小时前
框架的说明书是写给 AI 看的:我用 Next.js 搭了个博客
人工智能·代码规范·next.js
2601_955662461 小时前
AI 配音工具 7 款实测:短视频、影视解说、小说推文音质横向对比
人工智能·音视频·语音识别·视频
lupai1 小时前
手机在网状态接口实测效果与质量评估
大数据·python·智能手机·api接口
AI创界者2 小时前
PinkCherry-MiniMax-H3 全能AI视频整合包:8G显存开箱即用,支持首尾帧/超分补帧/自动提示词
人工智能·aigc
罗西的思考2 小时前
【Agentic RL / 强化学习框架】Molt 设计解读
人工智能·算法·机器学习
Mr数据杨2 小时前
GNSS伪距误差预测实战案例 从Kaggle回归任务到城市定位误差补偿
人工智能·数据分析·kaggle竞赛