python 三 数据结构

Python 提供了多种内置的数据结构,非常灵活易用,适合处理不同类型的数据需求。以下是常见的数据结构及其用法:


1. 列表(List)

特点

  • 有序
  • 可变
  • 支持重复元素

常用操作

# 定义列表
fruits = ["苹果", "香蕉", "橙子"]

# 访问元素
print(fruits[0])      # 输出: 苹果
print(fruits[-1])     # 输出: 橙子

# 添加元素
fruits.append("梨")    # 在末尾添加
fruits.insert(1, "草莓") # 指定位置插入

# 删除元素
fruits.remove("香蕉")  # 删除指定元素
fruits.pop()           # 删除末尾元素
fruits.pop(0)          # 删除指定位置元素

# 其他操作
print(len(fruits))     # 获取长度
fruits.sort()          # 排序
fruits.reverse()       # 倒序

2. 元组(Tuple)

特点

  • 有序
  • 不可变
  • 适合存储固定数据

常用操作

# 定义元组
colors = ("红", "绿", "蓝")

# 访问元素
print(colors[0])       # 输出: 红

# 元组是不可变的,因此不能修改元素
# colors[0] = "黄"     # 这是非法操作

应用场景:例如用于坐标 (x, y) 的表示:point = (10, 20)


3. 字典(Dictionary)

特点

  • 无序(Python 3.7+ 中插入顺序被保留)
  • 键值对结构
  • 键是唯一的

常用操作

# 定义字典
person = {"姓名": "张三", "年龄": 25, "城市": "北京"}

# 访问值
print(person["姓名"])       # 输出: 张三

# 添加或修改键值对
person["职业"] = "工程师"    # 添加新键值
person["年龄"] = 26         # 修改现有键值

# 删除键值对
del person["城市"]          # 删除键值对

# 遍历字典
for key, value in person.items():
    print(f"{key}: {value}")

# 获取所有键、值或键值对
print(person.keys())        # 获取所有键
print(person.values())      # 获取所有值
print(person.items())       # 获取键值对

4. 集合(Set)

特点

  • 无序
  • 元素唯一
  • 适合去重和集合运算

常用操作

# 定义集合
nums = {1, 2, 3, 3}  # 自动去重
print(nums)          # 输出: {1, 2, 3}

# 添加和删除元素
nums.add(4)          # 添加元素
nums.remove(3)       # 删除元素

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

print(set1 | set2)   # 并集: {1, 2, 3, 4, 5}
print(set1 & set2)   # 交集: {3}
print(set1 - set2)   # 差集: {1, 2}
print(set1 ^ set2)   # 对称差集: {1, 2, 4, 5}

5. 队列(Queue)

特点

  • 先进先出(FIFO)
  • 通常使用 collections.deque 实现
from collections import deque

# 创建队列
queue = deque(["A", "B", "C"])

# 入队
queue.append("D")

# 出队
queue.popleft()  # 输出: A

6. 栈(Stack)

特点

  • 后进先出(LIFO)
  • 可以用列表实现
# 创建栈
stack = []

# 入栈
stack.append("A")
stack.append("B")

# 出栈
print(stack.pop())  # 输出: B
print(stack.pop())  # 输出: A

7. 堆(Heap)

特点

  • 用于快速获取最小值或最大值
  • 可以用 heapq 模块实现
import heapq

nums = [4, 1, 7, 3, 8]

# 创建最小堆
heapq.heapify(nums)
print(nums)          # 输出: [1, 3, 7, 4, 8]

# 弹出最小值
print(heapq.heappop(nums))  # 输出: 1

8. 字符串(String)

字符串也是一种特殊的数据结构,类似于字符数组,但不可变。

常用操作

text = "Hello, Python!"

# 访问字符
print(text[0])         # 输出: H

# 切片
print(text[0:5])       # 输出: Hello

# 常用方法
print(text.lower())    # 转小写
print(text.upper())    # 转大写
print(text.split(", "))# 按分隔符切分
print("Python" in text)# 判断是否包含子串

总结

数据结构是否有序可变性特点和应用
列表有序可变存储任意类型,适合动态数据
元组有序不可变固定数据
字典无序可变键值对,快速查找
集合无序可变元素唯一,适合去重和集合运算
队列有序可变先进先出
有序可变后进先出
无序可变快速获取最小值或最大值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方来财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值