字典
容器型数据类型 ,查询速度快,数据关联性强
以{}括起来。以键值对形式存储的容器型数据类型
dic = {'太白': {'name': '太白金星','age': 18, 'sex': '男'}, 'python22期': ['朱光亚', '大壮', '雪飞', '岑哥'], }
键必的须是不可变的数据类型:int str (bool,tuple几乎不用) 唯一的
值可以是任意数据类型,对象
字典3.5x版本之前(包括3.5)是无序的,
字典3.6x会按照初次建立字典的顺序排列,学术上不认为是有序的。
字典3.7x以后都是有序的。
字典的有点是查询速度非常快,存储关联性的数据
字典的缺点是以空间换时间
创建方式
1
dic = dict((('one',1),('two',2),('three',3)))
2
dic = dict(one=1,two=2,three=3)
3
dic = dict({'one':1,'two':2,'three':3})
字典的增删改查
增
直接增加,有则改之,无则增加
dic['sex'] = '男' dic['age'] = '23'
setdefault 有则不变,无则增加
dic.setdefault('habby') dic.setdefault('habby','玩球') dic.setdefault('age',45)
删
pop 按照键删除键值对,有返回值
dic.pop('age') ret = dic.pop('age') ret = dic.pop('hobby','没有键位')
clear 清空
del 按照键删除键值对
改
dic['name'] = 'alex'
查
print(dic['sex'])
get ***
l1 = dic.get['sex'] l1 = dic.get['sex1','没有此键']
keys()
print(dic.keys(),type(dic.keys())) for key in dic.keys(): print(key)
values()
print(dic.values()) for value in dic.values(): print(value)
items
print(dic.items) for key,value in dic.items(): print(key,value) a,b = b,a print(a)
字典的嵌套
dic1 = { 'name':['alex',2,3,5], 'job':'teacher', 'oldboy':{'alex':['python1','python2',100]} # 1,将name对应的列表追加⼀个元素’wusir’。 dic1['name'].append('wusir') print(dic1) # 2,将name对应的列表中的alex⾸字⺟⼤写。 dic1['name'][0] = dic1['name'][0].title() print(dic1) # 3,oldboy对应的字典加⼀个键值对’⽼男孩’,’linux’。 a = dic1['oldboy'].setdefault('老男孩','linux') print(dic1) # 4,将oldboy对应的字典中的alex对应的列表中的python2删除 dic1['oldboy']['alex'].pop(1) print(dic1)
update 有则改之,无则增加
dic.update([(1, 'a'),(2, 'b'),(3, 'c'),(4, 'd')]) print(dic)
fromkeys
dic = dict.fromkeys([1,2,3],[]) dic[1].append(666) print(dic)
将字典中带有k的删除
l1 = [] for key in dic: if 'k' in key: l1.append(key) print(l1) for i in l1: dic.app(i) print(dic) for key in list(dic.keys()): if 'k' in key: dic.pop(key) print(dic)