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

Python常见的数据结构和代码示例

概述

Python 中常见的数据结构可以分为内置数据结构和扩展数据结构(主要来自第三方库)两类,以下是详细介绍:

一、内置数据结构(Python 自带)

这些是 Python 解释器原生支持的数据结构,无需额外导入模块。

1. 列表(List)

  • 特点:有序、可变(可修改)、允许重复元素,可存储不同类型数据。
  • 用途:最常用的数据结构,适合存储序列型数据。
  • 示例:
    fruits = ["apple", "banana", 3, True]
    fruits.append("orange")  # 添加元素
    fruits[0] = "grape"      # 修改元素
    

2. 元组(Tuple)

  • 特点:有序、不可变(创建后不能修改)、允许重复元素。
  • 用途:存储不可变的序列数据(如坐标、配置参数)。
  • 示例:
    point = (3, 4)  # 坐标点
    colors = ("red", "green", "blue")
    # 元组不可修改,以下代码会报错:
    # colors[0] = "yellow"
    

3. 字典(Dictionary)

  • 特点:无序(Python 3.7+ 后保证插入顺序)、可变,以键值对(key: value)存储,键唯一。
  • 用途:存储具有映射关系的数据(如对象属性、配置项)。
  • 示例:
    person = {"name": "Alice","age": 30,"is_student": False
    }
    print(person["name"])  # 访问值
    person["age"] = 31     # 修改值
    

4. 集合(Set)

  • 特点:无序、可变、无重复元素,支持数学集合运算(交集、并集等)。
  • 用途:去重、成员关系判断、集合运算。
  • 示例:
    numbers = {1, 2, 3, 3, 4}  # 自动去重,结果为 {1,2,3,4}
    numbers.add(5)             # 添加元素
    set1 = {1,2,3}
    set2 = {3,4,5}
    print(set1 & set2)  # 交集 {3}
    

5. 字符串(String)

  • 特点:有序、不可变,由字符组成,本质是字符的序列。
  • 用途:文本处理。
  • 示例:
    text = "Hello World"
    print(text[0])       # 访问第一个字符 'H'
    print(text.split())  # 分割为列表 ['Hello', 'World']
    

二、扩展数据结构(第三方库)

需通过 import 导入,主要用于特定场景(如数据分析、高效运算)。

1. NumPy 数组(ndarray)

  • 特点:同类型元素的多维数组,支持高效数值运算。
  • 用途:科学计算、矩阵运算。
  • 示例:
    import numpy as np
    arr = np.array([1, 2, 3, 4])
    print(arr * 2)  # 元素级运算 [2 4 6 8]
    

2. Pandas 数据框(DataFrame)

  • 特点:二维表格结构,带行索引和列名,支持异构数据(不同列可存不同类型)。
  • 用途:数据分析、清洗、处理结构化数据(如表格、CSV)。
  • 描述:在数据分析中,DataFrame 是 pandas 库中最核心的数据结构,你可以把它理解为一个二维表格,类似于 Excel 表格、数据库表或者 CSV 文件的结构。它是处理结构化数据(有行有列的数据)的主要工具。
  • 示例:
    import pandas as pd
    df = pd.DataFrame({'name': ['张三', '李四', '王五'],'age': [18, 19, 18],'score': [90, 85, 92],'gender': ['男', '女', '男']
    })
    print(df["age"])  # 访问"age"列
    

3. Pandas 系列(Series)

  • 特点:一维带标签的数组,可视为 DataFrame 的单列。
  • 用途:单列数据处理,支持索引操作和统计计算。
  • 示例:
    s = pd.Series([10, 20, 30], name="scores")
    print(s.mean())  # 平均值 20
    

4. 队列(deque,来自 collections 模块)

  • 特点:双端队列,支持高效的首尾元素添加 / 删除。
  • 用途:实现队列、栈等数据结构,处理滑动窗口问题。
  • 示例:
    from collections import deque
    q = deque([1, 2, 3])
    q.append(4)      # 尾部添加
    q.popleft()      # 头部删除,结果为 1
    

5. 有序字典(OrderedDict,来自 collections 模块)

  • 特点:保留插入顺序的字典(Python 3.7+ 后普通字典已支持此功能,使用率下降)。
  • 示例:
    from collections import OrderedDict
    od = OrderedDict()
    od["a"] = 1
    od["b"] = 2
    

总结

  • 日常编程优先使用内置结构(列表、字典、集合等)。
  • 数据分析首选 Pandas DataFrame/Series 和 NumPy 数组。
  • 特殊场景(如高效队列、有序映射)可使用 collections 模块的扩展结构。

根据需求选择合适的数据结构,能显著提高代码效率和可读性。

http://www.wxhsa.cn/company.asp?id=5480

相关文章:

  • Grafana 中文入门教程 | 构建你的第一个仪表盘
  • Gitee DevOps:中国开发者效率革命的数字引擎
  • Topaz Photo AI Pro 4.0.4 AI图片智能降噪
  • C++ std::map
  • 易基因:Nat Genet/IF29:董朝斌团队ChIP-seq等揭示作物株型穗型发育调控新机制 助力表观遗传育种驯化改良(顶刊佳作)
  • Edge浏览器网页长截图
  • Python TensorFlow的CNN-LSTM-GRU集成模型在边缘物联网数据IoT电动汽车充电站入侵检测应用
  • C++多线程编程—线程控制、同步与互斥详解
  • MySQL启动失败:mysqld.log Permis 报错处理.250916
  • 源码管理—密钥硬编码问题
  • 无速度传感器交流电机的扩展Luenberger观测器
  • AI Ping体验记:终于有人做大模型服务的“性能监控”了
  • 数据库原理-第二章——关系型数据库
  • mac 的任务栏 Windows-Style Taskbar For macOS
  • 快手Java一面
  • 详细介绍:Elastic APM 入门指南:快速设置应用性能监控
  • 想找Axure替代?这6个原型设计工具值得一试
  • H5游戏性能优化系列-----cpu相关优化
  • IPA 混淆实战 IPA 混淆、IPA 加固、ipa 文件安全与成品包防护全流程指南
  • 实用指南:javaweb HTML基本介绍/常见标签
  • 文档处理控件Aspose.Words教程:在 C# 中将 Markdown 转换为 PDF
  • TCP协议与wireshark
  • docker容器mysql导入sql文件
  • ObjectSense 包与模块:代码组织的艺术
  • IDE工具RAD Studio 13 Florence重磅发布:64 位 IDE + AI 组件全面升级!
  • C# 批量修改数据库
  • Job for network.service failed because the control process exited with error code.
  • 负荷聚类及其在MATLAB中的实现
  • 移动安全框架(MobSF)静态分析入门指南
  • 列表项点击,逻辑梳理