python函数第一章
元组
元组的基本定义
- 元组是不可变序列,一般情况下数据不改变
- 创建元组,( ) 可以创建一个空的元组,如图:
- 常见问题:TypeError: ‘tuple’ object does not support item assignment -元组的对象不可修改,如图:
- 如果元组不为空,则里面至少有一个逗号,:
元组解包
- 元组的解包就是将元组中每一个元组赋值给一个变量,解包时,变量数量需要和元组中的元素数量保持一致,如果不一致可以在变量前➕✳️,变量就会获取元组中所有剩余的变量
- 常见问题:ValueError: too many values to unpack (expected 3)-不够,错误如图
- 所以➕上✳️之后可以补齐,但需要????的是如果有无数个元素应该怎么做?
对象的比较
- 如果所示对象当中保存了三个数据,分别是????- 标识, ** type- 类型** ,value- 值;
- 可变对象是对象中的value可以改变
- 修改变量等于重新赋值,会改变变量所指向的对象,????和value 都变了
- 不给变量赋值,只是根据索引值修改序列中的元素,相同的????,执行结果也相同,如图
- 如果更改变量,结果
- 面向对象:==, != 比较的是值, is 和 is not 比较的是????, 比较两个对象是否是同一个对象,如图
字典(dict)
定义以及特性
- 属于一种新的数据结构称之为映射(mapping),字典的作用和列表类似,都是用来存储对象的容器
- 列表存储数据的性能很好,但是查询数据性能很差
- 在字典当中每一个元素都有唯一的一个名字,通过这个唯一的名字我们就可以快速查找到指定的元素
- 字典的存储性能相对较差,查询数据性能相当好
Key(键)
-
在字典中唯一的名字我们称:键(key),通过key可以快速查询value,我们称之为键值(key-value)
-
每个字典中可以有多个键值对,每个键值对称之为一项(item)
-
语法:{key:value,key:value…etc}
-
字典的键最好不要重复,重复出现后会替换前面的
-
如 d = {‘name’ : ‘葫芦娃’ , ‘age’ : 10 , ‘sex’ : ‘男’}
-
d = {
‘name’ : ‘葫芦娃’ ,
‘age’ : 10 ,
‘sex’ : ‘男’
} -
根据键来获取值, 如图所示
字典的使用
- 使用**{}**
-
语法:{key:value,key:value,…etc.}
- **dict( )**函数也可以将一个包含有双值子序列的序列转换为字典
- 双值序列,序列中只有两个值,例如:‘mk’,[4,5],(1,‘b’)
-
子序列 :序列中元素也是一个序列,那么我们就称这个元素为子序
-
语法:d[key]可以根据字典的键来获取元素 ,key值加’ ',不加会当成变量处理, 如图
- 自定义异常:get(key,[default])函数也可以获取字典的value,如果获取的key值不存在会返回None, default也可以指定一个默认值来作为第二个参数,如果获取不到key,则返回默认值, 如图
-
修改字典,d[key]=value, 可以在序列中修改key值或添加** key-value**
-
setdefault()方法,向字典中添加k-v, 如果key已经存在字典中,则返回key值,不对字典做任何操作, 如果key不存在,则想字典中添加一个key
-
update(), 是将其他字典中的k-v添加到当前字典,重复的key值则覆盖
-
删除 del 来删除key-value, a和b被删除
-
popitem()随机删除字典中的一个k-v对,一般都会删除最后一个k-v,删除之后会把删除的k-v作为返回值返回
-
pop(key,[default]),可以根据key来删除k-v,它的返回值是删除的value值, 如图
- 清空字典 d. clear( )->print(d)#{}
作业
- 作业一:a={‘name’:‘123’,‘data’:{‘result’:[‘src’:python1’}, {‘src’:‘python2’},{‘src’:‘python3’}]}}找到python1/2/3
- 作业二:有如下值列表[11,22,33,44,55,66,77,88,99,90]将所有大于66的值保存至字典的第一个key中,将小于66值保存在第二个key值中