之前一直觉得语言这东西,只要懂点语法,会用就行。然而昨天百度的面试,让我对此有了新的认识。可以不用过多关注语言本身,但是基本原理(思想)是一定要懂得,只有这样才能写出高效的代码。于是打算写一篇博客来深入理解下python常见的几种数据类型。

python的基本数据类型有Number(数字)、String(字符串)、Tuple(元组)、List(列表)、Dictionary(字典)、Set(集合),其中Number(数字)、String(字符串)、Tuple(元组)是不可变数据,List(列表)、Dictionary(字典)、Set(集合)是可变数据。

1. Numbers(数字)

Python3 支持 int、float、bool、complex(复数)。

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

像大多数语言一样,数值类型的赋值和计算都是很直观的。

在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。

2. String(字符串)

Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。

注意:

(1)反斜杠可以用来转义,使用r可以让反斜杠不发生转义。

(2)字符串可以用+运算符连接在一起,用*运算符重复。

(3)Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。

(4)Python中的字符串不能改变。

3. List(列表)

List(列表) 是 Python 中使用最频繁的数据类型,底层是通过动态数组来实现的(Python中list的实现)。

注意:

(1)List写在方括号之间,元素用逗号隔开。

(2)和字符串一样,list可以被索引和切片。

(3)List可以使用+操作符进行拼接。

(4)List中的元素是可以改变的。

4. Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。

注意:

(1)与字符串一样,元组的元素不能修改。

(2)元组也可以被索引和切片,方法一样。

(3)注意构造包含0或1个元素的元组的特殊语法规则。

(4)元组也可以使用+操作符进行拼接。

5. Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

注意:

(1)字典是一种映射类型,它的元素是键值对。

(2)字典的关键字必须为不可变类型,且不能重复。

(3)创建空字典使用 { }。

6. Set(集合)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

7. list和dict比较

(1)dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而增加;

需要占用大量的内存,内存浪费多。

(2)list有以下几个特点:

查找和插入的时间随着元素的增加而增加;

占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

8. 小结

(1)list、tuple是有序列表;dict、set是无序列表;

(2)list元素可变、tuple元素不可变;

(3)dict和set的key值不可变,唯一性;

(4)set只有key没有value;

(5)set的用途:去重、并集、交集等;

(6)list、tuple:+、*、索引、切片、检查成员等;

(7)dict查询效率高,但是消耗内存多;list、tuple查询效率低、但是消耗内存少。

参考:

(1)Python3 基本数据类型

(2)Python中list的实现

(3)python中list/tuple/dict/set的区别

python基本类型介绍相关推荐

  1. python数字类型-Python数字类型介绍

    数据类型介绍 Python数据类型可分为:数字型和非数字型 数字型 整型(int) 浮点型(float) 布尔型(bool) 真(True) 假(False) 复数型(complex) 主要用于科学计 ...

  2. python映射类型-python映射类型的相关介绍

    映射类型是一类可迭代的键-值数据项的组合,提供了存取数据项及其键和值的方法,在python3中,支持两种无序的映射类型:内置的dict和标准库中的collections.defaultdict类型. ...

  3. php枚举属于什么类型,python枚举类型是什么?python枚举类型的简单介绍

    本篇文章给大家带来的内容是关于python枚举类型是什么?python枚举类型的简单介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一:枚举类型的定义 二:枚举类和普通类的区别 ...

  4. 第4章 介绍Python对象类型

    看前须知 这里对本书中提到的不常见的内容进行了查证,举例,所以大家可以不用再费神去搜索相关内容 在Python中,我们运用"材料"来处理"事务". 材料:操作对 ...

  5. python定义整数型变量_Python变量类型有哪些?Python变量声明介绍

    变量不过是用于定义,存储和对输入数据执行操作的编程元素.Python变量类型有哪些?Python变量有四种不同类型,它们是Integer,LongInteger,Float和String.整数用于定义 ...

  6. Python字节码介绍

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...

  7. python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发

    python中表达式4+0.5值的数据类型为?_后端开发 python中表达式4+0.5值的数据类型为浮点型,因为4是整型,0.5是浮点型,在python中规定整型和浮点型相加,结果是浮点型,这是为了 ...

  8. python的四种内置数字类型_浅析Python数字类型和字符串类型的内置方法

    一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...

  9. python bool类型_Python 的内置数值类型

    Python 是一种敏捷的.动态类型化的.极富表现力的开源编程语言,可以被自由地安装到多种平台上.Python 代码是被解释的.如果您对编辑.构建和执行循环较为熟悉,则 Python 代码对您来说更简 ...

最新文章

  1. TCP全连接和半连接的问题探讨
  2. C#执行cmd [转载]
  3. task2 EDA数据分析
  4. 学习linux—— 磁盘相关指令
  5. Oracle DECODE函数的语法介绍
  6. unity 电梯_unity官方demo学习之Stealth(十七)电梯移动设定
  7. csm和uefi_BIOS里的 CSM 是什么意思,我的只有UEFI
  8. php订阅号如何吸粉,公众号如何快速吸粉,一周内吸粉7000+的6个技巧
  9. php如何替换ico图标,wordpress网站怎么设置更换站点favicon ico图标
  10. 鸿蒙系统的发展前景,国产系统大有可为!从鸿蒙看未来操作系统的大潮
  11. tb项目管理实践_项目 管理 数据库
  12. Different tests were collected between gw0 and gw1. The difference is: --- gw0
  13. HTML5 小组 北京站 沙龙
  14. “阅读推广 + ”模式下高校图书馆空间再造藏书体系建设
  15. 迁移学习(Transfer Learning)的背景、历史
  16. Linux source文件后提示 export:command not found
  17. android显示伽玛曲线,教你如何看伽玛曲线图
  18. 【JVM】<Java虚拟机>JVM架构各种**虚拟机
  19. 快播3.5不升级版常见问题
  20. DNF自动启停服务端备份数据

热门文章

  1. 后端:静态资源放在cdn cdn涵义 cdn加载
  2. 内马尔成为e.GO全球品牌大使;小马智行与如祺出行战略合作 | 美通企业日报
  3. 张勋说:钢渣处理工艺流程图及解析
  4. ui设计移动端字体适配_移动端UI界面设计:APP字体排版设计的七个原则
  5. 20169218 2016-2017-2 《网络攻防实践》第二周学习总结
  6. 关于负数的除法和余数的结果
  7. DD-WRT 客户端模式设置 暨添加无线连接功能
  8. python夯实基础日记-序列、列表、元组
  9. java实现抓包jacap_java 抓包工具 jpcap的下载与eclipse配置
  10. 红旗 linux 8,中科红旗Asianux Server Linux 8有何突出之处,附新功能介绍