Python基本数据结构之字典
定义:
{key1:value1,key2:value2}
1、键与值用冒号“:”分开;
2、项与项用逗号“,”分开;
示例:
1 dic4={ 2 'name': 'xiaohu', 3 'age': 20, 4 'hobby': 'girl' 5 }
特性:
1、key-value结构
2、key必须为不可变数据类型、必须唯一
3、可存放任意多个value、可修改、可以不唯一
4、无序
查询速度快,且不受dict的大小影响,至于为何快?我们学完hash再解释。
字典两大特点: 无序,键唯一
dic = {1:'xiaohu','age':'20','hobby':{'name':'铁锤','age':45},'is_handsome':True}
print(dic)
print(dic['hobby']) # 字典和元祖都不可以做为键 因为他们都是可变的 字典可以作为后面的值
创建字典
1 dic3 = dict((('2','xiaohu'),)) #调用dict函数
2 print(dic3)
字典的操作
1、增
(1)直接新增键值对
1 dic1={'name':'xiaohu'}
2 dic1['age']=20
3 print(dic1) #增加一个
(2)利用函数setdefault()进行添加
2、查
(1)dic[''] 直接利用key来查值
dic.keys() dic.values() dic.items()
1 dic4={'name': 'xiaohu', 'age': 20, 'hobby': 'girl'}
2 print(dic4['name'])
3
4 print(dic4.keys()) # 通过keys方法来查看字典里所有的键,但是注意的是拿出来的不是一个列表 dict_keys(['name', 'age', 'hobby'])
5 print(type(dic4.keys())) #<class 'dict_keys'>
6 print(list(dic4.keys())) # ['name', 'age', 'hobby'] 将它转换成列表
7 print(list(dic4.values())) #['xiaohu', 20, 'girl'] 将它的值拿出来并且转换成列表
8 print(list(dic4.items())) # [('name', 'xiaohu'), ('age', 20), ('hobby', 'girl')]
3、改 update
1 dic4={'name': 'xiaohu', 'age': 20, 'hobby': 'girl'}
2 dic4['age']=21
3 print(dic4) #{'name': 'xiaohu', 'age': 21, 'hobby': 'girl'}
4 dic5={'1':111,'age':'2222'}
5 dic4.update(dic5) # 将dic5加入到idc4中去,dic4发生改变,dic5不发生改变, 若有重复的键,将覆盖其值
6 print(dic4) # {'name': 'xiaohu', 'age': '2222', 'hobby': 'girl', '1': 111}
7 print(dic5) # {'1': 111, 'age': '2222'}
4、删 del clear pop popitem
1 dic6={'name': 'xiaohu', 'age': 20, 'hobby': 'girl','height':'180'}
2 # del dic6['name'] # 删除的是一个键值对
3 # print(dic6)
4
5 # dic6.clear() #删除一整个字典 字典删除后为空
6
7 # print(dic6.pop('age')) # 删除某一个索引,返回删除的值
8 # print(dic6)
9
10 a=dic6.popitem() # 删除的是随机的
11 print(a,dic6)
5、涉及到的其他操作及方法
1 dic7=dict.fromkeys(['host1','host2','host3'],'test')
2 print(dic7) # {'host1': 'test', 'host2': 'test', 'host3': 'test'}
3 dic8=dict.fromkeys(['host1','host2','host3'],['test','test2'])
4 print(dic8) # {'host1': ['test', 'test2'], 'host2': ['test', 'test2'], 'host3': ['test', 'test2']}
6、后话 字符串拼接 join方法
1 a='123'
2 b='abc'
3 e='444'
4 c=a+b
5 print(c) # 123abc
6 d='---'.join([a,b,e]) # 通过‘---’将字符串拼接
7 print(d) # 123---abc---444
7、字典与字符串的转换 利用eval()函数转换成字典
1 a=str({'beijing':{'1':1111}}) # 将字典类型转换成字符串类型,使之可以存到文件里
2 print(type(a))
3 print(a)
4 a=eval(a) # 使用eval()函数将字符串转换成字典类型,为了操作从文件取出来的字符串类型的字典进行操作,否则操作报错
5 print(type(a))
6 print(a['beijing'])