Python3 数据结构
                           
天天向上
发布: 2025-03-14 22:50:05

原创
866 人浏览过

Python 提供了丰富的内置数据结构,可以帮助我们有效地存储、操作和访问数据。常用的数据结构包括:列表(List)、元组(Tuple)、字典(Dictionary)、集合(Set)。这些数据结构都有自己的特点和适用场景。接下来详细介绍 Python 中的常用数据结构。


1. 列表(List)

概述

  • 列表是 Python 中最常见的数据结构之一,它是一个有序的可变集合,可以包含重复的元素。
  • 列表是动态的,可以在创建后进行修改、删除、添加元素。

特点

  • 有序:元素的顺序是固定的。
  • 可变:可以对列表中的元素进行增、删、改。
  • 可以包含不同类型的元素。

常见操作

# 创建列表
my_list = [1, 2, 3, 4]

# 访问元素
print(my_list[0])  # 输出 1

# 修改元素
my_list[1] = 10

# 添加元素
my_list.append(5)

# 删除元素
my_list.remove(3)  # 删除值为 3 的元素

# 列表切片
print(my_list[1:3])  # 输出 [10, 4]

# 列表长度
print(len(my_list))  # 输出 4

2. 元组(Tuple)

概述

  • 元组是 Python 中的一个有序集合,与列表类似,但它是不可变的(immutable)。一旦创建,它的内容无法修改。
  • 元组通常用于存储一些不希望更改的数据。

特点

  • 有序:元素的顺序是固定的。
  • 不可变:元组中的元素不可修改。
  • 可以包含不同类型的元素。

常见操作

# 创建元组
my_tuple = (1, 2, 3, 4)

# 访问元素
print(my_tuple[0])  # 输出 1

# 元组切片
print(my_tuple[1:3])  # 输出 (2, 3)

# 元组长度
print(len(my_tuple))  # 输出 4

3. 字典(Dictionary)

概述

  • 字典是一种无序的键值对(key-value)集合。它是 Python 中唯一的映射类型。
  • 字典中的元素是以键值对的形式存储,键是唯一的,值可以是任何类型。

特点

  • 无序:字典中的元素没有顺序。
  • 键值对:每个元素由键和值组成。
  • 键是唯一的:同一个字典内不允许有重复的键。

常见操作

# 创建字典
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 访问元素
print(my_dict['name'])  # 输出 Alice

# 修改元素
my_dict['age'] = 26

# 添加元素
my_dict['job'] = 'Engineer'

# 删除元素
del my_dict['city']

# 获取所有键或值
keys = my_dict.keys()  # 获取字典的所有键
values = my_dict.values()  # 获取字典的所有值
print(keys)  # 输出 dict_keys(['name', 'age', 'job'])
print(values)  # 输出 dict_values(['Alice', 26, 'Engineer'])

4. 集合(Set)

概述

  • 集合是 Python 中的一个无序、不重复的元素集合。
  • 集合用于存储唯一的元素,常常用于去重和集合操作(如交集、并集、差集等)。

特点

  • 无序:集合中的元素没有顺序。
  • 唯一:集合中的元素是唯一的,不允许重复。
  • 可变:集合本身是可变的,但集合中的元素必须是不可变的。

常见操作

# 创建集合
my_set = {1, 2, 3, 4, 5}

# 添加元素
my_set.add(6)

# 删除元素
my_set.remove(4)

# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 交集
print(set1 & set2)  # 输出 {3}

# 并集
print(set1 | set2)  # 输出 {1, 2, 3, 4, 5}

# 差集
print(set1 - set2)  # 输出 {1, 2}

5. 队列(Queue)

概述

  • 队列是一种遵循先进先出(FIFO,First In First Out)原则的线性数据结构。
  • Python 中的 queue 模块提供了实现队列的功能。

常见操作

from collections import deque

# 创建队列
queue = deque()

# 入队(添加元素)
queue.append('a')
queue.append('b')

# 出队(移除元素)
print(queue.popleft())  # 输出 'a'

# 查看队列头部元素
print(queue[0])  # 输出 'b'

6. 栈(Stack)

概述

  • 栈是一种遵循后进先出(LIFO,Last In First Out)原则的线性数据结构。
  • Python 中可以通过列表模拟栈,使用 append() 添加元素,使用 pop() 移除元素。

常见操作

# 创建栈
stack = []

# 入栈(添加元素)
stack.append(1)
stack.append(2)

# 出栈(移除元素)
print(stack.pop())  # 输出 2

# 查看栈顶元素
print(stack[-1])  # 输出 1

7. 双端队列(Deque)

概述

  • 双端队列(Deque,Double-ended Queue)是可以从两端插入和删除元素的队列。
  • Python 中的 collections.deque 提供了双端队列的实现。

常见操作

from collections import deque

# 创建双端队列
dq = deque()

# 从右端添加元素
dq.append(1)
dq.append(2)

# 从左端添加元素
dq.appendleft(0)

# 从右端删除元素
dq.pop()  # 输出 2

# 从左端删除元素
dq.popleft()  # 输出 0

总结

Python 中的常见数据结构包括:

  • 列表(List):有序、可变,可以存储多种类型的数据。
  • 元组(Tuple):有序、不可变,适合存储不需要修改的数据。
  • 字典(Dictionary):无序的键值对集合,常用于存储关联数据。
  • 集合(Set):无序、不重复的元素集合,适合去重和集合运算。
  • 队列(Queue):遵循先进先出(FIFO)原则的线性数据结构。
  • 栈(Stack):遵循后进先出(LIFO)原则的线性数据结构。
  • 双端队列(Deque):支持从两端插入和删除元素的队列。

这些数据结构为 Python 编程提供了灵活、高效的工具,可以根据具体需求选择合适的数据结构。更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *