04-数据结构

第4节 数据结构

在这一节中,我们将详细介绍 Python 中常用的数据结构,包括列表、元组、字典和集合。这些数据结构是 Python 中非常重要的部分,用于存储和操作多个数据项。

4.1 列表

列表是 Python 中最常用的数据结构之一,用于存储有序的可变集合。列表中的元素可以是不同类型的,如整数、浮点数、字符串等。

创建列表:

复制代码
my_list = [1, 2, 3, 4, 5]
fruits = ["apple", "banana", "cherry"]
mixed_list = [1, "two", 3.0, True]

访问列表元素: 列表索引从 0 开始,可以使用索引来访问列表中的元素。

复制代码
fruits = ["apple", "banana", "cherry"]
print(fruits[0])  # 输出 "apple"
print(fruits[1])  # 输出 "banana"
print(fruits[-1])  # 输出 "cherry"(负索引从末尾开始)

修改列表: 可以使用索引来修改列表中的元素。

复制代码
fruits = ["apple", "banana", "cherry"]
fruits[1] = "orange"
print(fruits)  # 输出 ["apple", "orange", "cherry"]

列表方法: Python 提供了许多内置方法来操作列表。

  • append() :在列表末尾添加一个元素。
  • extend() :在列表末尾添加另一个列表的所有元素。
  • insert() :在指定位置插入一个元素。
  • remove() :删除列表中第一个匹配的元素。
  • pop() :删除并返回指定位置的元素,默认删除最后一个元素。
  • index() :返回列表中第一个匹配元素的索引。
  • count() :返回列表中指定元素的出现次数。
  • sort() :对列表进行排序。
  • reverse() :反转列表中的元素。

示例:

复制代码
fruits = ["apple", "banana", "cherry"]

# 添加元素
fruits.append("orange")
print(fruits)  # 输出 ["apple", "banana", "cherry", "orange"]

# 插入元素
fruits.insert(1, "grape")
print(fruits)  # 输出 ["apple", "grape", "banana", "cherry", "orange"]

# 删除元素
fruits.remove("banana")
print(fruits)  # 输出 ["apple", "grape", "cherry", "orange"]

# 删除并返回元素
last_fruit = fruits.pop()
print(last_fruit)  # 输出 "orange"
print(fruits)  # 输出 ["apple", "grape", "cherry"]

# 查找元素索引
index = fruits.index("grape")
print(index)  # 输出 1

# 计算元素出现次数
count = fruits.count("apple")
print(count)  # 输出 1

# 排序
fruits.sort()
print(fruits)  # 输出 ["apple", "cherry", "grape"]

# 反转
fruits.reverse()
print(fruits)  # 输出 ["grape", "cherry", "apple"]
4.2 元组

元组是 Python 中另一种用于存储有序集合的数据结构,但它是不可变的,即一旦创建后就不能修改其内容。

创建元组:

复制代码
my_tuple = (1, 2, 3, 4, 5)
colors = ("red", "green", "blue")
single_element_tuple = (1,)  # 注意逗号

访问元组元素: 元组索引从 0 开始,可以使用索引来访问元组中的元素。

复制代码
colors = ("red", "green", "blue")
print(colors[0])  # 输出 "red"
print(colors[1])  # 输出 "green"
print(colors[-1])  # 输出 "blue"(负索引从末尾开始)

元组方法: 元组的方法较少,因为它是不可变的。

  • count() :返回元组中指定元素的出现次数。
  • index() :返回元组中第一个匹配元素的索引。

示例:

复制代码
colors = ("red", "green", "blue")

# 计算元素出现次数
count = colors.count("red")
print(count)  # 输出 1

# 查找元素索引
index = colors.index("green")
print(index)  # 输出 1
4.3 字典

字典是 Python 中用于存储键值对的数据结构。每个键都是唯一的,键值对之间用冒号 : 分隔,键值对之间用逗号 , 分隔,整个字典用花括号 {} 包围。

创建字典:

复制代码
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
empty_dict = {}

访问字典元素: 可以使用键来访问字典中的值。

复制代码
person = {"name": "Alice", "age": 25, "city": "New York"}
print(person["name"])  # 输出 "Alice"
print(person.get("age"))  # 输出 25
print(person.get("gender", "Unknown"))  # 输出 "Unknown"(键不存在时返回默认值)

修改字典: 可以使用键来修改字典中的值,或者添加新的键值对。

复制代码
person = {"name": "Alice", "age": 25, "city": "New York"}
person["age"] = 26
person["email"] = "[email protected]"
print(person)  # 输出 {"name": "Alice", "age": 26, "city": "New York", "email": "[email protected]"}

字典方法: Python 提供了许多内置方法来操作字典。

  • keys() :返回字典中所有键的视图。
  • values() :返回字典中所有值的视图。
  • items() :返回字典中所有键值对的视图。
  • pop() :删除并返回指定键的值。
  • popitem() :删除并返回字典中的最后一对键值。
  • clear() :清空字典。

示例:

复制代码
person = {"name": "Alice", "age": 25, "city": "New York"}

# 获取所有键
keys = person.keys()
print(keys)  # 输出 dict_keys(['name', 'age', 'city'])

# 获取所有值
values = person.values()
print(values)  # 输出 dict_values(['Alice', 25, 'New York'])

# 获取所有键值对
items = person.items()
print(items)  # 输出 dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])

# 删除并返回指定键的值
age = person.pop("age")
print(age)  # 输出 25
print(person)  # 输出 {'name': 'Alice', 'city': 'New York'}

# 删除并返回字典中的最后一对键值
last_item = person.popitem()
print(last_item)  # 输出 ('city', 'New York')
print(person)  # 输出 {'name': 'Alice'}

# 清空字典
person.clear()
print(person)  # 输出 {}
4.4 集合

集合是 Python 中用于存储无序且不重复的元素的数据结构。集合中的元素必须是不可变的(如数字、字符串、元组等)。

创建集合:

复制代码
my_set = {1, 2, 3, 4, 5}
empty_set = set()  # 注意:{} 创建的是字典,不是集合

访问集合元素: 集合是无序的,不能通过索引来访问元素,但可以使用 in 关键字检查元素是否存在。

复制代码
my_set = {1, 2, 3, 4, 5}
print(3 in my_set)  # 输出 True
print(6 in my_set)  # 输出 False

集合方法: Python 提供了许多内置方法来操作集合。

  • add() :添加一个元素。
  • update() :添加多个元素。
  • remove() :删除指定元素,如果元素不存在则抛出错误。
  • discard() :删除指定元素,如果元素不存在则不抛出错误。
  • pop() :删除并返回一个随机元素。
  • clear() :清空集合。
  • union() :返回两个集合的并集。
  • intersection() :返回两个集合的交集。
  • difference() :返回两个集合的差集。
  • symmetric_difference() :返回两个集合的对称差集。

示例:

复制代码
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 添加元素
set1.add(4)
print(set1)  # 输出 {1, 2, 3, 4}

# 添加多个元素
set1.update([5, 6])
print(set1)  # 输出 {1, 2, 3, 4, 5, 6}

# 删除元素
set1.remove(5)
print(set1)  # 输出 {1, 2, 3, 4, 6}

# 删除元素(不存在时不抛出错误)
set1.discard(7)
print(set1)  # 输出 {1, 2, 3, 4, 6}

# 删除并返回一个随机元素
random_element = set1.pop()
print(random_element)  # 输出一个随机元素
print(set1)  # 输出剩余元素

# 清空集合
set1.clear()
print(set1)  # 输出 set()

# 集合操作
set1 = {1, 2, 3}
set2 = {3, 4, 5}

union_set = set1.union(set2)
print(union_set)  # 输出 {1, 2, 3, 4, 5}

intersection_set = set1.intersection(set2)
print(intersection_set)  # 输出 {3}

difference_set = set1.difference(set2)
print(difference_set)  # 输出 {1, 2}

symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set)  # 输出 {1, 2, 4, 5}

小结

通过本节的学习,你应该已经掌握了 Python 中的四种主要数据结构:列表、元组、字典和集合。每种数据结构都有其独特的特性和应用场景,理解这些数据结构的使用方法将帮助你在实际编程中更加高效地处理数据。下一节我们将继续学习 Python 中的函数。

本文由mdnice多平台发布

相关推荐
柏油6 小时前
MySQL InnoDB 行锁
数据库·后端·mysql
咖啡调调。6 小时前
使用Django框架表单
后端·python·django
白泽talk6 小时前
2个小时1w字| React & Golang 全栈微服务实战
前端·后端·微服务
摆烂工程师6 小时前
全网最详细的5分钟快速申请一个国际 “edu教育邮箱” 的保姆级教程!
前端·后端·程序员
一只叫煤球的猫6 小时前
你真的会用 return 吗?—— 11个值得借鉴的 return 写法
java·后端·代码规范
Asthenia04127 小时前
HTTP调用超时与重试问题分析
后端
颇有几分姿色7 小时前
Spring Boot 读取配置文件的几种方式
java·spring boot·后端
AntBlack7 小时前
别说了别说了 ,Trae 已经在不停优化迭代了
前端·人工智能·后端
@淡 定7 小时前
Spring Boot 的配置加载顺序
java·spring boot·后端