python基础----内置数据类型三

序列

序列是一种数据存储方式,用来存储一系列的数据,在内存中,序列就是一块用来存放多个值的连续的内存空间
类型:字符串 ,列表 ,元祖 ,字典,集合
一个整数序列如下表示:
在这里插入图片描述
由于python3中一切皆对象,在内存中实际是按照如下方式存储的:
a = [10,20,30,40]
在这里插入图片描述
从图示中:
可以看出序列中存储的是整数对象的地址,而不是整数对象的值

列表

列表用于存储任意数目,任意类型的数据集合
列表是内置可变序列,是包含多个元素的有序连续的内存空间
a = [10,20,30,40] 10,20,30,40是列表a的元素
列表常用方法:
在这里插入图片描述
列表的大小可变,可根据需要增加或减小

列表创建

基本语法[]创建
a = [10,20,'li','abc']
list()创建    使用list可以将任何迭代的数据转化成列表

a = list()   # 创建一个空的列表对象
a = list(range(10))

在这里插入图片描述

range()创建整数列
在这里插入图片描述

推导式生成列表
在这里插入图片描述

列表元素的增加和删除
append()方法 原地修改列表对象,是真正的列表尾部添加新的元素
在这里插入图片描述
+运算符操作 并不是真正的尾部添加元素而是创建新的列表对象,将原列表和新列表的元素依次复制到新的列表对象中
在这里插入图片描述
extend()方法 将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的对象
在这里插入图片描述
insert()插入元素 可以将指定的元素插入到列表对象的任意指定位置
在这里插入图片描述
乘法扩展
在这里插入图片描述

字典

字典是"键值对"的无序可变序列
字典创建
在这里插入图片描述
字典元素的访问
在这里插入图片描述
字典元素添加,修改,删除
在这里插入图片描述
字典序列解包
序列解包可用于元组,字典,列表,用于字典时,默认是对"键"操作,键值操作使用items(),值操作使用values()
在这里插入图片描述

字典核心底层原理

字典对象的核心是散列表,是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做bucket,每个bucket有两部分:键对象的引用,值对象的引用
由于所有bucket结构和大小一致,我们可以通过偏移量来读取指定bucket
用法总结:
键必须可散列 数字,字符串,元组都是可散列的
自定义对象需要支持以下几点:支持hash()函数 支持通过__eq__()方法检测相等性 若a==b为真,则hash(a)==hash(b)也为真
字典在内存中开销巨大,典型的空间换时间
键查询速度很快
往字典里面添加新键可能导致扩容,导致散列表中键的次序变化,因此不要在遍历字典的同时进行字典的修改

集合

集合是无序可变,元素不能重复,集合底层是字典实现,集合所有元素都是字典中的"键对象"因此是不能重复且唯一的
集合创建和删除
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值