【Python】基本数据类型对比

一、数据类型对比

元组

列表

集合

字典

动态

不可变

可变

可变

可变

序列

有序

有序

无序

无序

异构

异构

异构

异构

异构

重复

可重复

可重复

不可重

不可重

1、动态

可变与不可变是指内存中空间是否可以被改变

当数据发生增删改时,数据的地址不发生变化时,为可变类型

当数据发生增删改时,数据的地址发生变化时,为不可变类型。计算机会重新分配一块内存空间。

注:字典是可变数据类型。但字典的键不可变,只能改变键的值或者是将整个键值对删掉。字典的键只能使用数字、元组和字符串。

2、序列

序列:内部元素之间是否有排列顺序

有序序列支持索引和切片

3、异构

异构:可以存放不同类型的元素

注:字典中的元素均为键值对,字典的异构性在于键和值可以为不同类型的元素。

4、重复

重复:可以存在多个同样的元素

注:字典的键不可重复,值可以重复。

二、常用方法对比

元组

列表

集合

字典

建立

tuple()

list()

set()

dict()

()

[]

{}

{}

列表推导式 集合推导式 字典推导式

/

append()

add()

dict[key]=value

extend()

update()

update()

insert()

/

pop()

pop()

pop()

remove()

remove()/discard()

clear()

clear()

clear()

del

del

del

del

/

list[index]=value

dict[key]=value

+ *

+ *

& | -

tuple[index]

list[index]

dict[key]

get()

in/not in

in/not in

in/not in

in/not in

遍历

遍历

遍历

遍历

index()

index()

count()

count()

排序

sort()

reverse()

1、建立

  • 元组、列表、集合和字典均可以使用各自的构造方法创建
  • 元组、列表、集合和字典可以分别使用 ()、[]、{}、{} 创建(集合使用大括号创建时必须填充内容,不可以使用大括号创建空的集合。空的大括号是字典格式)
  • 列表、集合和字典可以使用推导式创建

2、增

  • 列表:append接收单个对象,extend接收一个可迭代对象,均是插入到末尾位置;insert可以指定插入位置,需要2个参数
  • 集合:add接收单个对象,update接收一个可迭代对象
  • 字典:update直接传入字典对象。也可以使用dict[key]=value的方式增加元素
  • 返回值均为None

3、删

pop()

  • 列表:删除指定索引元素或不指定的末尾元素。索引值不正确或者列表为空,引发IndexError错误
  • 集合:随机删除一个元素。集合为空,引发KeyError错误
  • 字典:删除指定key的键值对。key不存在于字典中,引发KeyError错误
  • 返回值均是被删除元素的值

remove()

  • 列表:删除指定值的元素。目标元素不存在,会报ValueError错误
  • 集合:删除指定值的元素。目标元素不存在,会报KeyError错误
  • 返回值均为None

discard()

  • 集合:删除指定值的元素。目标元素不存在,也不会报错
  • 返回值为None

clear()

  • 移除所有元素,变为一个空的列表/集合/字典
  • 返回值均为None

del

  • 把元组/列表/集合/字典整个删除
  • 无内存地址分配

4、改

  • 列表和元组支持使用 + 和 * 进行组合
  • 集合支持交集、并集和差集进行组合
  • 列表和字典支持使用索引或者key直接改变元素值

5、查

  • 元组、列表和字典支持使用索引或者key查找元素值
  • 字典支持get()方法获取key对应的value值。key存在时,返回对应的value值;key不存在时,返回None,不会引发KeyError。
  • 元组、列表、集合和字典均支持 in 和 not in判断元素是否存在。
  • 元组、列表、集合和字典均支持使用循环进行遍历元素
  • 元组和列表支持使用index()方法查看目标元素索引值,目标元素不存在,会报ValueError错误
  • 元组和列表支持使用count()方法计算目标元素的数目

6、排序

  • 列表支持内部元素使用sort()方法排序,默认数字按照大小排序,字符串根据字母顺序排序,也可以指定排序方法。支持key和reverse参数
  • 列表支持使用reverse()方法反转内部元素,只针对索引值,元素不比较大小不进行排序

猜你喜欢

转载自blog.csdn.net/Yocczy/article/details/132403800