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

参考资源


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

相关推荐
测试界的酸菜鱼3 分钟前
Python 大数据展示屏实例
大数据·开发语言·python
羊小猪~~6 分钟前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
AI小杨8 分钟前
【车道线检测】一、传统车道线检测:基于霍夫变换的车道线检测史诗级详细教程
人工智能·opencv·计算机视觉·霍夫变换·车道线检测
晨曦_子画12 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
道可云14 分钟前
道可云人工智能&元宇宙每日资讯|2024国际虚拟现实创新大会将在青岛举办
大数据·人工智能·3d·机器人·ar·vr
Black_Friend20 分钟前
关于在VS中使用Qt不同版本报错的问题
开发语言·qt
人工智能培训咨询叶梓23 分钟前
探索开放资源上指令微调语言模型的现状
人工智能·语言模型·自然语言处理·性能优化·调优·大模型微调·指令微调
zzZ_CMing23 分钟前
大语言模型训练的全过程:预训练、微调、RLHF
人工智能·自然语言处理·aigc
newxtc24 分钟前
【旷视科技-注册/登录安全分析报告】
人工智能·科技·安全·ddddocr
成都古河云25 分钟前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市