Fifth 字典/集合/
嵌套的真正含义:
当小列表里面的数值变化的同时会影响大列表中的,增则直接增加,改则需要再赋值
可变与不可变:
可变(不可哈希)的数据类型:list,dict,set
不可变(可哈希)的数据类型:str,bool,int,tuple
数据类型的分类
容器型数据类型:list,tuple,dict,set
非容器型数据类型:str,bool,int
1、字典:
why:列表查询速度相对满且没有强的关联性
what:{'name', 'xxx'}以键值对形式存储的数据类型
1、字典的键必须是不可变(可哈希)的数据类型,唯一的不重复
字典的值可以是任意数据类型(对象)
2、字典的查询速度非常快
3、字典再3.5包括3.5之前是无序的,但是3.6优化机制,
字典会按照创建字典之初的顺序排序
4、字典可以存储大量的关联性数据
{'name': 'xxx', 'python3': ['xx', 'xxx', 'xx'],
'学威': {
'name': '学威'
'id': '123451'
'sex': '男'
}''
}
增
dic[keys] = [x] #有则覆盖,无则添加,多个位元祖 dic1.setdefault(k, v) #有则跳过,无则添加
删
dic = {'name': 'barry', 'age': 18, 'sex' : 'man'}
dic.pop('name') # 删除对应的键值,有返回值
dic.pop('name1', None) #没有对应的简直则返回设置的None
dic.clear() # 清空字典
dic.popitem #删除最后一个健值对,有返回值返回元祖tuple
del dic # 删除整个字典
del dic['name'] #删除健值,如果没有则报错
改
dic['age'] = 28 dic2.update(dic1) #将dic1字典中键值对覆盖添加到dic2 dic.update(weight=150,high=175) #键值对添加
查
dic['name'] #按照键值对查对应的值,没有则报错 dic.get('age', '返回值') #按照健值对查对应的值,没有则返回None,也可以设置返回值 #直接for循环字典获取的是key值 #dic.keys() dic.values() dic.items() #上面的三个都是返回一个类似与列表的容器的特殊数据类型 for key in dic.keys(): for value in dic.values(): for item in dic.items(): #循环出来的item是键值对类型的元祖 #分别赋值 a, b = 100, 200 a, b, c = (1, 2, 3) a, b, c = [1, 2, 3] for k, v in dic.items(): #可以将item的元祖分别赋值到k, v两个变量里面
1、格式化输出%s:
第一种是%s做占位符
第二张是通过字典:
如:dic = {'name':'xxx', 'sex':'yyy','age':18}
msg = '我叫%(name)s, 今年%(age)s, 性别%(sex)s' % dic

浙公网安备 33010602011771号