1. Python内置数据类型

python内置数据类型中的列表list和字典dict,可作为Python语言中实现各种常用数据结构的基石,后续各种数据结构均基于他们实现。两种数据类型的常见(操作)方法均可归纳为增删改查四大类,如图1所示:

图1: list和dict的主要操作
列表数据类型的数据追加方法有两种实现方法:append() 和 两列表相加(即: add()“+”),其中 lst.append(v) 的时间复杂度是O(1),lst= lst+ [v] 的时间复杂度是O(n+k),其中k是被加的列表长度。

同时,列表数据类型的pop方法也有两点值得注意的地方:pop() 从列表末尾移除元素,时间复杂度是 O(1);pop(i) 从列表中按索引移除元素,时间复杂度是 O(n)。

这原因在于Python所选择的实现方法,从中部移除元素的话,要把移除元素后面的元素全部向前挪位复制一遍,这个看起来有点笨拙,但这种实现方法能够保证列表,按索引取值和赋值的操作很快,达到O(1),这也算是一种对常用和不常用操作的折衷方案。

列表数据类型各方法的时间复杂度如图2所示:

图2: List基本操作的大O数量级
字典数据类型最常用的取值 get() 和赋值 set() 方法,其时间复杂度是 O(1)。 另一个重要操作contains(in)是判断字典中是否存在某个关键码(key),这个性能也是O(1);而列表中contains(in)的时间复杂度是O(n)

字典数据类型各方法的时间复杂度如图2所示:

图3:Dict基本操作的大O数量级

数据结构(Python版):Python内置数据类型相关推荐

  1. 学Python,这些内置数据类型总结(数字类型)你可否知道

    数据类型是一种值的集合以及定义在这种值上的一组操作.一切语言的基础都是数据结构,所以打好基础对于后面的学习会有百利而无一害的作用. python内置的常用数据类型有:数字.字符串.Bytes.列表.元 ...

  2. Python中的内置数据类型

    文章目录 列表 list 列表的嵌套使用 列表的特性 索引 index 切片 slide 重复 repeat 连接 link 成员操作符 迭代 列表元素的添加 普通方法: 追加 扩展 插入 列表元素的 ...

  3. Python数据结构与算法(1.2)——Python基础之变量与内置数据类型

    Python数据结构与算法(1.2)--Python基础之变量与内置数据类型 0. 学习目标 1. Python 程序的运行 1.1 Python 交互式解释器 1.2 Python 程序脚本 2. ...

  4. python数据类型与数据结构--内置数据类型

    学习目标:将python所涉及的数据类型.数据结构弄清楚 python作为面向对象编程语言.那么代表数据的对象都有哪些呢? 在这里我把他们分为内置数据类型,文件数据类型,第三方常用数据结构和自定义的数 ...

  5. 【Python】第二章 内置数据类型

    该文章内容整理自<Python编程:从入门到实践>.<流畅的Python>.以及网上各大博客 文章目录 内置数据类型 变量 基本运算 特殊值 布尔值 数字类型 序列 字符串 转 ...

  6. python类型-Python基本内置数据类型有哪些?

    玩蛇网Python学习平台在这里会和大家讲下Python初学者,最常用到的Python基本内置数据类型有哪些. 在Python程序中,每个数据都是对像,每个对像都有自己的一个类型.不同类型有不同的操作 ...

  7. 以下不是python内置数据类型的是_以下不是python内置数据类型的是

    以下不是python内置数据类型的是 答:float 关于分娩先兆,下述哪项是错误的 答:初产妇见红血量比经产妇多 中国提出的________理念,为世界和平繁荣提供了新路径,并被写入联合国决议 答: ...

  8. python3字典升序排序_python3从零学习-4.2、内置数据类型

    内置标准类型: * Boolean(布尔) * Number(数字) * String(字符串) * List(列表) * Tuple(元组) * Sets(集合) * Dictionary(字典) ...

  9. 1.1内置数据类型概述

    1.为什么使用内置数据类型? 2.Python核心数据类型 3.数据类型的不可变与可变特性 4.序列与散列的概念: 5.数据类型的检查方法 6.寻求帮助 1.为什么使用内置数据类型? 1 -(1)内置 ...

最新文章

  1. linux下定义删除变量
  2. 前端必知必会HTTP请求系列(二)简单一点的HTTP协议
  3. 广联达2018模板算量步骤_广联达GTJ2021操作教程:造价小白3天速成,计量效率翻倍...
  4. 九十年代以来的文学事变与60后70后80后作家的写作之一
  5. 2018-2019 ICPC Northwestern European Regional Programming Contest (NWERC 2018)
  6. 对InputStreamReader 和 OutputStreamWriter的理解
  7. JAVA面试要点004_JAVA编程过程中为了性能优化_应该注意到的地方
  8. 塞尔达传说gba_《塞尔达传说缩小帽》是系列一年级生?,回忆众多玩友的启蒙之作...
  9. Makefile 函数
  10. iOS CocoaPods自动管理第三方开源库
  11. mysql手动编译安装_手动编译安装Mysql
  12. Windows下修改hosts文件
  13. 学校计算机总帐和明细帐的表格,5教学仪器设备总账和明细账填写模板.doc
  14. 查询结果按中文拼音顺序排序
  15. 美国计算机编程竞赛,USACO美国计算机竞赛
  16. [paper]Defense against Adversarial Attacks Using High-Level Representation Guided Denoiser
  17. 进程管理系统的设计与实现 SDUT 操作系统实训 项目 Java
  18. 九年级计算机教学课时计划,【推荐】九年级下学期教学教学工作计划三篇
  19. 项目十大管理之成本管理
  20. Python100道经典练习题(一)

热门文章

  1. 弱监督学习框架 Detectron2/DRN-WSOD-pytorch 在服务器/windows上配置安装及使用
  2. 可视化BI模板分享:运营相关模板,知乎已获千赞
  3. 数据结构学习笔记 哈希表(一) 哈希表基础与哈希函数
  4. 集合有哪些 java_java集合有哪些
  5. 【Java集合】Java集合一览(汇总)
  6. 通信码元速率和带宽理解
  7. 我的平安健康生活---师旭平
  8. python爬虫(四)数据存储
  9. php 带逗号数字转换,php实现数字格式化,数字每三位加逗号的功能函数169856420=169,856,420...
  10. python是解释性语言!