Python基础五:字典
字典dict
字典dict是Python里面唯一的映射数据类型,它采用key—value对应的数据存储方式。字典的key必须是不可变数据类型,如字符串,数字,元组,字典的value可以是任意数据类型。字典的键Key必须是唯一的,不可重复。Python3.5之前的Python版本字典都是无序的,之后的版本字典都是有序的。
可变数据类型:数字,字符串,布尔值,元组
可变数据类型:列表,字典,集合(set)
字典的基本操作
#字典的增 #1.直接增加,保证key不重复的情况下 dic={1:'a',2:'b',3:'c',4:'d'} dic[5]='e' print(dic) #输出结果:{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'} #2.用setdefault函数增加,key已存在时字典不变,key不存在时才添加 dic={1:'a',2:'b',3:'c',4:'d'} dic.setdefault(5,'e') print(dic) #输出结果:{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'} dic={1:'a',2:'b',3:'c',4:'d'} dic.setdefault(1,'e') print(dic) #输出结果:{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
#字典的删 #1.pop函数删除,有返回值,返回删除的value。如果字典中没有要删除的键key,可设置其他返回值 dic={1:'a',2:'b',3:'c',4:'d'} ret = dic.pop(1) print(dic,ret) #输出结果:{1: 'a', 2: 'b', 3: 'c', 4: 'd'} a ret = dic.pop(5,'返回值') print(ret) #输出结果:返回值 #2.clear清空字典 dic={1:'a',2:'b',3:'c',4:'d'} dic.clear() print(dic) #输出结果:{} #3.del删除字典和删除键值对 dic={1:'a',2:'b',3:'c',4:'d'} del dic[1] print(dic) del dic print(dic) #输出结果:{2: 'b', 3: 'c', 4: 'd'} 报错:NameError: name 'dic' is not defined #4.popiteam Python3.5之前是随机删除,因为字典是无序的,之后都是默认删除最后一个键值对。 dic={1:'a',2:'b',3:'c',4:'d'} ret = dic.popitem() print(ret) print(dic) #输出结果:(4, 'd') {1: 'a', 2: 'b', 3: 'c'}
#字典的改 #1.按照key直接改,如果Key字典里就修改对应value,不在就添加 dic={1:'a',2:'b',3:'c',4:'d'} dic[1]='e' print(dic) #输出结果:{1: 'e', 2: 'b', 3: 'c', 4: 'd'} #1.Update改,将dic的键值对,覆盖,添加到dic2 中,dic不变 dic = {"name":"jin","age":18,"sex":"male"} dic2 = {"name":"alex","weight":75} dic2.update(dic) print(dic) print(dic2) #输出结果:{'name': 'jin', 'age': 18, 'sex': 'male'} {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
#字典的查 #1.直接通过键key查 dic={1:'a',2:'b',3:'c',4:'d'} print(dic[1]) #print(dic[5]) 没有key则报错 #输出结果:a #2.get函数查,没有对应key时默认返回None,可设置返回值 dic={1:'a',2:'b',3:'c',4:'d'} print(dic.get(3)) print(dic.get(5)) print(dic.get(6,'没有此键值对')) #输出结果:c None 没有此键值对
字典的嵌套和列表类似
dic = { 'name':'金鑫', 'name_list':[1,2,3,'李杰'], 1:{ 'python10':['小黑','萌哥'], '老男孩':{'name':'oldboy','age':56} } } #1 [1,2,3,'李杰']追加'wusir' dic['name_list'].append('wusir') print(dic) # 2 ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥 dic[1]['python10'].insert(1,'花哥') print(dic) # 3 ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥 dic[1]['老男孩']['hobby']=('男人') print(dic)
Ps:
a = 1 b = 3 一行代码,让a,b值互换 a,b=b.a print(a,b) 结果:a=3,b=1
a,b=['1','2'] a='1' b='2' a和b是字符串类型
a,b=('1','2') a='1' b='2' a和b是字符串类型
字典的函数操作
和list列表类似,字典有count,len
把全部的key取出来用 keys,取出来后是类似 list 的表,但不是 list,通过转变可以变成 list列表
dic={1:'a',2:'b',3:'c',4:'d'}
keys = dic.keys()
print(keys,type(keys))
k=list(keys)
print(k,type(k))
输出:dict_keys([1, 2, 3, 4]) <class 'dict_keys'>
[1, 2, 3, 4] <class 'list'>
把全部的值value取出来也类似,用values,不是列表但可以转变成列表
dic={1:'a',2:'b',3:'c',4:'d'}
values = dic.values()
print(values,type(values))
v=list(values)
print(v,type(v))
结果:dict_values(['a', 'b', 'c', 'd']) <class 'dict_values'>
['a', 'b', 'c', 'd'] <class 'list'>
把键值对取出来用 items,与上面类似
dic={1:'a',2:'b',3:'c',4:'d'}
items = dic.items()
print(items)
结果:dict_items([(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')])
把键值对取出来,简单的 for 循环
for k,v in dic.items():
print(k,v)
for k in dic:
print(k,dic[k])
浙公网安备 33010602011771号