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

参考资源


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

相关推荐
MessiGo5 分钟前
Python 入门教程(3)基础知识 | 3.3、标识符
java·开发语言·python
sp_fyf_20245 分钟前
计算机人工智能前沿进展-大语言模型方向-2024-09-16
人工智能·语言模型·自然语言处理
akhfuiigabv6 分钟前
探索LangChain中的最新NLP研究:创新与应用
人工智能·python·自然语言处理·langchain
网络研究院9 分钟前
解码 OpenAI 的 o1 系列大型语言模型
人工智能·语言模型·自然语言处理·openai·技术·推理·能力
AI in Bio12 分钟前
集成学习详细介绍
人工智能·算法·集成学习·boosting
二十雨辰16 分钟前
[Java]maven从入门到进阶
java·开发语言·maven
AI绘画咪酱32 分钟前
Stable Diffusion上手绘图必须知道的几个关键点,快收藏起来!
人工智能·ai作画·stable diffusion·aigc·ai绘画
解孔明32 分钟前
数据类型自动转换的解决方案
java·开发语言
时间会证明一切.37 分钟前
【Java面试】第十天
java·开发语言·spring·面试
哆啦叮当39 分钟前
Linux下root用户共享conda环境给其他用户
linux·运维·服务器·python·conda