当前位置: 首页 > news >正文

Python 中的数据结构介绍

Python 是一种功能强大的编程语言,它内置了多种数据结构,以便用户能够方便、高效地存储、处理和访问数据。数据结构是组织和存储数据的方式,不同的数据结构适用于不同的应用场景。掌握 Python 中的基本数据结构,可以使代码更加简洁高效。

本文将对 Python 中常用的数据结构进行介绍,涵盖列表(List)、元组(Tuple)、集合(Set)、字典(Dictionary)以及队列(Queue)和栈(Stack)等常见数据结构。

1. 列表(List)

列表是 Python 中最常用的数据结构之一,它是一个有序的可变的元素集合。列表可以包含任意类型的元素,可以包含重复的元素,且支持通过索引访问元素。

创建列表:

my_list = [1, 2, 3, 4, 5]
mixed_list = [1, "Python", 3.14, True]

常见操作:

  • 访问元素:使用索引访问列表中的元素(从 0 开始)。

    print(my_list[0])  # 输出: 1
    
  • 修改元素:可以通过索引修改列表中的元素。

    my_list[0] = 100
    print(my_list)  # 输出: [100, 2, 3, 4, 5]
    
  • 添加元素:使用 append() 向列表添加单个元素,使用 extend() 向列表添加多个元素。

    my_list.append(6)  # 添加一个元素
    my_list.extend([7, 8])  # 添加多个元素
    print(my_list)  # 输出: [100, 2, 3, 4, 5, 6, 7, 8]
    
  • 删除元素:使用 remove() 删除指定元素,使用 pop() 删除并返回指定索引位置的元素。

    my_list.remove(100)  # 删除值为100的元素
    my_list.pop(2)  # 删除索引为2的元素并返回
    print(my_list)  # 输出: [2, 3, 4, 5, 6, 7, 8]
    
2. 元组(Tuple)

元组与列表类似,都是有序的元素集合,但是元组是不可变的。这意味着一旦创建了元组,不能修改其中的元素。元组通常用于存储不需要修改的数据。

创建元组:

my_tuple = (1, 2, 3, 4, 5)
mixed_tuple = (1, "Python", 3.14, True)

常见操作:

  • 访问元素:与列表类似,使用索引访问元组中的元素。

    print(my_tuple[0])  # 输出: 1
    
  • 无法修改:元组一旦创建,就不能修改其中的元素。

    # 错误示例:尝试修改元组元素会报错
    # my_tuple[0] = 100  # 会抛出 TypeError
    
3. 集合(Set)

集合是一个无序且不包含重复元素的数据结构。集合通常用于去重操作或测试成员资格。它支持常见的集合运算,如并集、交集和差集。

创建集合:

my_set = {1, 2, 3, 4}
empty_set = set()  # 创建空集合

常见操作:

  • 添加元素:使用 add() 向集合添加元素。

    my_set.add(5)
    print(my_set)  # 输出: {1, 2, 3, 4, 5}
    
  • 删除元素:使用 remove() 删除指定元素。

    my_set.remove(3)
    print(my_set)  # 输出: {1, 2, 4, 5}
    
  • 集合运算:支持并集、交集、差集等集合运算。

    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}
    
4. 字典(Dictionary)

字典是一种无序的键值对集合,它允许通过键来快速查找对应的值。字典中的键是唯一的,但值可以重复。字典广泛用于存储需要快速访问的数据。

创建字典:

my_dict = {"name": "Alice", "age": 25, "city": "New York"}

常见操作:

  • 访问元素:通过键访问字典中的值。

    print(my_dict["name"])  # 输出: Alice
    
  • 修改元素:通过键修改字典中的值。

    my_dict["age"] = 26
    print(my_dict)  # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York'}
    
  • 添加元素:向字典添加新的键值对。

    my_dict["job"] = "Engineer"
    print(my_dict)  # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York', 'job': 'Engineer'}
    
  • 删除元素:使用 del 删除指定的键值对。

    del my_dict["city"]
    print(my_dict)  # 输出: {'name': 'Alice', 'age': 26, 'job': 'Engineer'}
    
5. 队列(Queue)和栈(Stack)

队列和栈是两种常见的线性数据结构。它们的主要区别在于数据元素的插入和删除顺序。

  • 栈(Stack):栈遵循“后进先出”(LIFO,Last In First Out)的原则,插入的元素在栈顶,删除元素也是从栈顶进行的。

    可以使用 Python 的 list 来实现栈:

    stack = []
    stack.append(1)  # 入栈
    stack.append(2)
    stack.pop()  # 出栈,返回 2
    print(stack)  # 输出: [1]
    
  • 队列(Queue):队列遵循“先进先出”(FIFO,First In First Out)的原则,插入的元素在队尾,删除元素从队头进行。可以使用 collections.deque 来高效实现队列。

    from collections import deque
    queue = deque([1, 2, 3])
    queue.append(4)  # 入队
    queue.popleft()  # 出队,返回 1
    print(queue)  # 输出: deque([2, 3, 4])
    
6. 总结

Python 提供了多种数据结构,每种数据结构在不同的场景下都有其独特的优势。掌握这些基础数据结构,有助于我们编写更加高效和易维护的代码。

  • 列表(List):有序、可变、允许重复元素,适合存储有序数据。

  • 元组(Tuple):有序、不可变、允许重复元素,适合存储不需要修改的数据。

  • 集合(Set):无序、唯一,适合去重和集合运算。

  • 字典(Dictionary):无序、键值对,适合存储需要快速查找的数据。

  • 队列(Queue)和栈(Stack):适用于需要按特定顺序处理数据的场景。

相关文章:

  • Spark,所用几个网页地址
  • 巧记英语四级单词 Unit7-下【晓艳老师版】
  • pcl对应点聚类算法
  • 音视频之H.265/HEVC编解码并处理
  • 基于SpringBoot网上书店的设计与实现
  • MySQL 主从配置超详细教程
  • 行业黑化.新平面
  • C#经典算法面试题
  • LeetCode 解题思路 45(Hot 100)
  • 卷积神经网络的简单实战项目
  • C++ string的使用
  • 隔离端口配置
  • ArcGIS Pro图斑属性自动联动更新-在线卫星底图图斑采集
  • C语言结构体内存对齐使用场景
  • 【区块链】Uniswap之滑点(Slippage)
  • R8周:RNN实现阿尔茨海默病诊断
  • 软件代码签名证书SSL如何选择?
  • NoUniqueKey问题和Regular join介绍
  • UE5 脚部贴地不穿过地板方案
  • C++命名空间
  • 售卖自制外挂交易额超百万元,一男子因提供入侵计算机系统程序被抓
  • 过半中国上市公司去年都在“扩编”,哪些公司人效最高
  • 中国人民银行:5月8日起降息,15日起降准
  • 42岁退役军人高武生命最后时刻:在水中托举近20分钟救出落水孩童
  • 《黎明的一切》:与正常世界脱轨后,我选择不再回去
  • 虚构医药服务项目、协助冒名就医等,北京4家医疗机构被处罚