Python提供多种数据类型来存放数据项集合,主要包括序列(列表list和元组tuple),映射(如字典dict),集合(set),下面对这几种一一介绍:

一 序列

1.列表list

列表是一种有序的集合,相对于元组和字符串的不同是它其中的元素可变,可以随时添加和删除其中的元素。

(1)创建list

在命令行中测试,如下: >>> L1 = [1,2,3]

>>> L1

[1, 2, 3]

>>> L2 = ['abc']

>>> L2

['abc']

>>> L3 = ["a","b","c"]

>>> L3

['a', 'b', 'c']

注意,字符串的一定要加引号。

通过list对字符串创建列表非常有效,比如: >>> L = list("Python")

>>> L

['P', 'y', 't', 'h', 'o', 'n']

(2)访问list

根据索引来访问,注意不能越界,这一点跟数组特别像: >>> L[0]

'P'

>>> L[-1]

'n'

(3)添加新元素

用append()方法,把新元素追加到list的末尾;insert()可以将一个新元素添加到特定的位置。

(4) 删除元素

删除元素可以采用pop()方法,执行L.pop()删除list的最后一个元素,如果是特定位置的话可以采用pop(2),2表示的是位置。

(5)替换

替换很简单,直接索引就可以。

(6)打印 >>> L = ['a','b','c']

>>> for i in L:

print(i)

a

b

c

2. tuple

(1)创建

与list所不同的是,tuple一般采用()括起来,命令行中测试,如下: T= 1,2,3

>>> T

(1, 2, 3)

>>> T = (1,2,3)

>>> T

(1, 2, 3)

>>> T = "abc"

>>> T

'abc'

创建空元组:T = ()

定义一个元素的元组:

>>> T = (1)

>>> T

1

这样运行了结果是对的,看起来也没错,但是这种定义其实并不正确,这种定义的不是tupel,而是1这个数,这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。所以定义含一个元素的元组时必须加一个逗号,如下: >>> T = (1,)

>>> T

(1,)

(2)访问

直接索引就好,如下: >>> T =(1,2,3)

>>> T[1]

2

(3)更改

上述定义的tuple是不变的,但是我们可以在tuple中定义list对其进行修改: >>> T = (1,2,['a','b'])

>>> T[2][0]

'a'

>>> T[2][0] = 'c'

>>> T

(1, 2, ['c', 'b'])

在tuple中,虽然元素不可以修改,但是我们可以对其进行连接组合: >>> T1 = [1,2,3]

>>> T2 = [4,5,6]

>>> T3 = T1 + T2

>>> T3

[1, 2, 3, 4, 5, 6]

3.字符串

(1)创建 >>> str = "Hello Python"

>>> str

'Hello Python'

(2)访问

>>> str[0]

'H'

(3)相加

>>>str = "hello "

>>>str = "Python"

>>> str3 = str1 + str2

>>> str3

'Hello Python'

4.通用的序列操作方法

(1)索引

在访问序列元素中用到,如下: >>> L = ['a','b','c']

>>> L[1]

'b'

>>> T = (1,2,3)

>>> T[0]

1

>>> str = "Python"

>>> str[4]

'o'

(2)分片

分片用来访问一定范围内的元素,分片通常通过冒号相隔的两个索引来实现,常见的有如下几种: >>> a = list(range(10))

>>> a

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> b = a[1:5]

>>> b

[1, 2, 3, 4]

>>> c = a[-3:-1]

>>> c

[7, 8]

>>> d = a[1:10:2]

>>> d

[1, 3, 5, 7, 9]

二 映射(字典)

映射中的每个元素都有一个专业的名字,叫做键。字典是Python中唯一内建的映射类型,下来我们对其进行详细介绍:

(1)键类型

字典(dict)是一个存放无序的键值映射(key/value)类型数据的容器字典的键可以是数

字、字符串或者是元组,键必须唯一。在Python中,数字、字符串和元组都被设计成不可变类型,而常见的列表以及集合(set)都是可变的,所以列表和集合不能作为字典的键。键可以为任何不可变类型,这正是Python中的字典最强大的地方。

(2)创建 >>> d = {}

>>> d[1] = 1

>>> d

{1: 1}

>>> d['cat'] = 'Lucy'

>>> d

{1: 1, 'cat': 'Lucy'}

(3)查找

dict是通过key来查找value,表示的是意义对应的关系,可以通过d[key]的方式来访问dict:

>>> d['cat']

'Lucy'

(4)遍历 >>> d = {}

>>> d['cat'] = 'Lucy'

>>> d['dog'] = 'Ben'

>>> for key in d:

print(key + ":",d[key])

结果

cat: Lucy

dog: Ben

(5)优缺点

dict的第一个特点是查找速度快,而且查找的速度与元素的个数无关,而list的查找速度是随着元素的增加而逐渐下降的;第二个特点是存储的key-value序对是没有顺序的;第三个特点是作为key得到元素是不可变的,所以list不能作为key。

dict的缺点是占用内存大,还会浪费很多内容。

三 集合(set)

dict是建立了一系列的映射关系,而set是建立一系列无序的,不重复的元素。

(1)创建

创建set的方式是调用set()并传入一个list,list的元素将作为set的元素。

>>> S = set([1,2,3])

>>> S

{1, 2, 3}

重复元素在Set中自动过滤,如:

>>> S = set([1,1,2,3,4,5,4])

>>> S

{1, 2, 3, 4, 5}

(2)添加

add()添加,有重复元素可以添加,但不会有效果: >>> S.add(4)

>>> S

{1, 2, 3, 4, 5}

>>> S.add(9)

>>> S

{1, 2, 3, 4, 5, 9}

(3)删除

>>> S.remove(9)

>>> S

{1, 2, 3, 4, 5}

(4)交集,并集

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集:

>>> S1 = set([1,2])

>>> S2 = set([2,3])

>>> S1&S2

{2}

>>> S1|S2

{1, 2, 3}

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

四 list,tuple,dict和set的主要区别

1 .list

list是一个使用方括号括起来的有序元素集合;

List 可以作为以 0 下标开始的数组,任何一个非空 list 的第一个元素总是 L[0],负数索引从 list 的尾部开始向前计数来存取元素。任何一个非空的 list 最后一个元素总是 L[-1];

有分片功能,两个list可以相加;

append 向 list 的末尾追加单个元素;

insert 将单个元素插入到 list 中;

extend 用来连接 list,使用一个 list 参数进行调用;

append 接受一个参数, 这个参数可以是任何数据类型, 并且简单地追加到 list 的尾部;

index 在 list 中查找一个值的首次出现并返回索引值;

要测试一个值是否在 list 内, 使用 in, 如果值存在, 它返回 True, 否则返为 False ;

remove 从 list 中删除一个值的首次出现;

pop 可以删除 list 的最后一个元素, 然后返回删除元素的值,用索引删除制定位置的值;

2.tuple

tuple是不可变的list,创建了一个tuple就不能以任何方式改变它;

定义tuple是将整个元素集是用小括号括起来,是有序集合;

tuple的索引与list一样从0开始,所以一个非空的tuple的第一个元素总是t[0];

负数索引与 list 一样从 tuple 的尾部开始计数;

与 list 一样分片 (slice) 也可以使用。分割一个 tuple 时, 会得到一个新的 tuple;

没有 append、extend、remove或pop方法以及index方法;

可以使用in来查看一个元素是否存在于tuple 中。

3.dict

dict定义了键和值之间的一一对应关系,每个元素都是一个key-value对;

整个元素集合用大括号括起来,有序集合;

可以通过 key 得到value, 但不能通过vaule获取 key;

在一个 dict中不能有重复的 key, 并且 key 是大小写敏感的;

键可以是数字、字符串或者是元组等不可变类型;

用del使用key可以删除dict中的独立元素;

用clear可以清除dict中的所有元素。

4.set

set是建立一系列无序的,不重复的元素;

创建set的方式是调用set()并传入一个list,list的元素将作为set的元素;

set和dict的唯一区别仅在于没有存储对应的value。

以上是就是对Python数据类型的全部总结,希望对大家的学习有所帮助。

list可以存放python中任意类型的数据_Python中常见的数据类型小结相关推荐

  1. python的数值类型和运算符_Python中的基本数据类型和运算符,python

    python中的数据类型 1.int(整型):1,9,78,9999 2.float(浮点型):0.5,1.9,3.1415926 3.字符串型:"aba","45sdf ...

  2. python的数值类型和运算符_python学习笔记之数据类型---数字类型及运算符

    数据类型 数字类型 整形: height1 = 180 height2 = int(180) height3 = int('180') print(height3) 浮点型: salary1 = 1. ...

  3. python如何输入多组数据_Python 中如何实现多组的输入输出

    多组数据的输入: while True: try: a,b,c=map(int,input().split()) print(a+b+c) except: break 实现特定的次数的输入: n=in ...

  4. 关于python浮点数类型错误的是_关于 Python 的数字类型,以下选项中描述错误的是( )...

    关于 Python 的数字类型,以下选项中描述错误的是( ) 答:浮点数也有十进制.二进制.八进制和十六进制等表示方式 学业成就女性不亚于男性,而在事业成就女子表现如何? 答:明显落后于男子 对于间壁 ...

  5. python对浮点类型的数据进行格式化_(自用)Python Log2 数据类型、字符编码、格式化...

    数据类型 1.整数 十六进制可以使用0x+数字0-9(字母a-f). 2.浮点数 一般使用科学计数法,用e代替10,比如1.2e5,为1.2×10^5. 3.字符串 可以使用单引号' ',或者双引号& ...

  6. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  7. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  8. java double 小数点后两位小数_Java中double类型的数据精确到小数点后两位

    Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585; BigDecimal b = newBigDecimal(f);do ...

  9. mysql java 获取周_Java中获取Mysql中datetime类型的数据

    由于Java中的日期类型只有Date类型,而Mysql中即有date型,又有datetime型,当我们想要在java中获取Mysql中datetime类型的数据或向Mysql数据库中插入datetim ...

最新文章

  1. Android:AS与Unity3D之间打包的各种坑及解决方案
  2. 前端开发中好用的 chrome 插件
  3. 设计模式学习笔记-原型模式
  4. opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3 编译问题 highgui _Win32_IE
  5. SQLite Version3.3.6源代码文件结构
  6. pytorch 笔记:torch.nn.Conv2d
  7. vivado环境下用Verilog语言实现编码器
  8. 小s结尾与大S结尾的汇编语言差异
  9. linux中spawn远程执行,linux 远程登录执行命令
  10. 在5分钟内将Spring Boot作为Windows服务启动
  11. 北斗有 35 颗卫星,而 GPS 有 24 颗卫星,为什么二者数量不同?
  12. World Wind Java开发之十一——加载热点信息(仿Google Earth)(转)
  13. C++20协程原理和应用
  14. Ansible详解(十二)——Ansible Roles详解
  15. jquery UI 框架
  16. 用SQL备份数据库表
  17. 小米手机计算机连接设置方法,小米手机怎么连接电脑并上网?小米手机USB共享上网方法详细图解...
  18. python加权求和_python求加权平均值的实例(附纯python写法)
  19. 中兴新支点操作系统上如何查找文件
  20. imx6ul的sd卡启动过程分析

热门文章

  1. 利用PHP执行SQL文件,将SQL文件导入到数据库
  2. Mysql使用存储过程与函数进行批量插入数据
  3. Go的sync.Once(三):once.do(函数名)  函数只执行一次
  4. macpycharm格式化代码_PyCharm for mac 2020.2 强大的Python IDE工具
  5. 国内Linux shell,管理你的 shell 环境 | Linux 中国
  6. python如何入侵服务器的_通过redis入侵服务器的步骤
  7. python目录及文件_零基础小白必看:python基本操作-文件、目录及路径
  8. .net 把一个对象赋值给一个参数_Java:new一个对象的过程中发生了什么?
  9. yum error: rpmdb: BDB0113 Thread/process
  10. python 删除文件、目录_python实现删除文件与目录的方法