重要数据结构——list,tuple,set,dict

发布时间:2020-05-09 21:11:45 作者:wx5b77f75099907
来源:网络 阅读:457

基本特性和创建对比:

列表:

可变的,可重复的,有序的 ,线性的
列表个体称为元素,元素可以是任一对象
一定均匀分配每个元素的内存存储空间,因为它靠偏移量来搜索元素,列表中存放的都是数据的内存地址,而不是数据,真正的数据存放在其他地方。

元组:
不可变,可重复的,有序的,只读的(没有增删改查)
元组个体称为元素,元素可以是任一对象
对于不需要修改的序列,我们最好将其定义为元组。(因为元组的结构相比列表更简单,所以它比列表更加节省内存空间)

集合(set):

可变的,无序的,不可重复的
有序才是线性的,无序不是线性的。set集合的元素是不可以索引的,因为set是无序的。但是set是可以迭代,这就是为什么可索引的一定是可迭代的,但是可迭代的不一定是可索引的。
set的元素必须可以hash的。
只要是不可变类型的数据结构都是可hash的(hashable),具体如下:
数值型int、float、complex
布尔型True、False
字符串string、bytes
tuple
None:空值也是可以hash的,因为它是一个常量,不可变。
为什么说可变类型的数据结构不可hash呢?因为只要数据一变,hash后的key也会跟着变。这对以hash值为索引依据的set集合而言是不可接受的,需要频繁的维护hash表。得不偿失。

字典:

可变的,无序的,key值不重复
字典是key:value键值对的数据集合
创建字典的时候一定要注意,key一定要是可hash的数据结构,否者会抛出TypeError的异常。

字典元素的访问:
d[key]:返回key对应的值value,key如果不存在则抛出KeyError异常
get(key[, default]):返回key对应的值value,但是如果key不存在则返回缺省值,如果没有设置缺省值就返回None
setdefault(key[, default]):如果key存在,返回key对应的值value。如果key不存在,则添加key:value对,value为default,并返回default,如果default没有设置,缺省为None,一定要注意setdefault不能够修改key的value,当key存在时,它只是返回key的value,并不会修改key的值。


增删改查对比:
list:

set:

dict:

推荐阅读:
  1. python数据类型dict、list、str、tuple互
  2. Python中list,tuple,dict和set的主要区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

数据结构 tuple set

上一篇:如何在windows系统环境下发布ios app应用上架

下一篇:PHP运行出现Notice : Use of undefined constant 的解决办法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》