05 字典的基础
1 内容大纲
- 字典的基础知识
- 字典的使用(增删改查)
- 字典的嵌套
2 内容回顾
- 列表:一种容器数据类型,可以承载大量的数据类型,有序的数据
- 增
- append:追加
- insert 插入到指定位置
- extend 迭代着追加
- 删
- pop 按照索引删除,但是什么都不写则会默认删除最后一个
- remove 按照元素删除,如果有重复的,则删除第一个
- clear 清空
- del 按照索引删除,也可以按照步长进行删除
- 改
- list[1] = 2
- list[1:3] = 'hello' #将hello添加到[1:3]之间
- list[1:4:2] = 'ab' #如果使用步长,只有两个位置,则后面的赋值需要进行匹配
- 查
- 按照索引查,切片以及for循环
- 增
- 元组:只读列表,可以进行拆包
- range:自己控制数字范围的数字列表
- lst = range(5)
- print(lst[1:3]) #range(1,3)
- print(lst[-1]) #-4
- print(lst[1,5,-1] #结果为空
- lst = range(5)
3 今日内容
-
字典的初识
- 为什么需要字典?
- 列表可以存储大量的数据,但是数据和数据之间的关联性不强
- 列表的查询速度相对比较慢
- 数据类型的分类(可变的数据类型)
- 可变的数据类型(不可哈希):列表、字典、集合
- 不可变的数据类型(可哈希):字符串、布尔、元组、整数
- 为什么需要字典?
-
字典是意义对应的键值对
-
dic ={'太白':'name','jin':2} -
键必须是不可变的数据类型,例如int,str,值可以是任毅的数据类型,对象
- 字典3.5x版本之前(包括3.5)是无序的
- 字典3.6x会按照初次建立字典的顺序排列,学术上不认为是有序的
- 字典3.7x以后是有序的
- 字典的查询速度非常块,通常是以空间换时间
-
-
字典的创建
-
方式一
-
dic =dict((('one',1),('two',2),('three',3)))
-
-
方式二
-
dic =dict(one = 1,two=2,three=3)
-
-
方式三
-
dic =dict({'one':1,'two':2,'three':3}) -
官方推荐
-
-
验证字典的合法性
-
字典的键必须唯一,如果不唯一,则会采用后一个的键值对
-
-
字典的增删改查
-
增
- dic['sex'] = '男' #有则改之,无则增加
- dic.setdefault('hobby','球类运动') #增加一个键值对,如果有键值对,则不会改原列表的数据
-
删
- dic.pop('age') #按照键删除,有返回值,如果没有这个键会报错
- dic.pop('age','没有此键') #设置第二个参数则无论字典中有无此键都不会报错
- dic.clear() #清空字典
- del dic['age'] #按照键值删除,没有这个键值会报错
-
改
- dic['sex'] = '男'
-
查
-
dic['age'] #查age,如果没有这个键,则会返回报错
-
dic.get('age') #没有此键时会返回None
-
dic.get('age','没有此键') #没有此键时会返回设置好的返回值,例如‘没有此键’
-
三个特殊的值
-
keys
print(dic.keys()) print(list(dic.keys())) #可以将所有的key转换成列表 for key in dic.keys(): print(key) -
values
- print(dic.values()) #这个是所有的值,与keys一致
-
items
-
print(dic.items()) for i,j in dic.items(): print(i,j) -
a和b的值进行互换
- a,b = b,a
-
~~~python 快速插入python代码
-
-
-
-
-
字典的嵌套
-
dic={ 'name':'汪峰', 'age':48, 'wife':[{'name':'国际章','age':38},], 'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'} } #获取汪峰的名字 print(dic.get('name')) #获取这个字典{'name':'国际章','age':38} print(dic.get('wife')[0]) #获取汪峰妻子的名字 print(dic.get('wife')[0].get('name')) #获取汪峰第三个孩子的名字 print(dic.get('children').get('girl_three')) -
dic1 = { 'name':['alex',2,3,5], 'job':'teacher', 'oldboy':{'alex':['python1','python2',100]} } #将name对应的列表追加一个元素:wusir dic1.get('name').append('wusir') #将name对应的列表中的alex首字母大写 dic1.get('name')[0]=dic1.get('name')[0].capitalize() #oldboy对应的字典加一个键值对:'老男孩': 'linux' dic1.get('oldboy')['老男孩']='linux' #将oldboy对应的字典中的alex对应的列表中的python2删除 dic1.get('oldboy').get('alex').remove('python2')
-
浙公网安备 33010602011771号