1.什么是字典字典就是key-value键值对数据的集合(且key不可重复);字典是可变的,无序的;字典中,key必须是可哈希的数据类型;2.字典的定义和初始化定义字典可以使用d = dict() 或者 d = {}两种方法;d = dict() #定义字典d = {}使用键值对的方式初始化字典;d = {‘a’:1, ‘b’:2}print(d) #输出:{‘a’: 1, ‘b’: 2}使用传参的方式初始化字典;d = dict(a=1, b=2)print(d) #输出:{‘a’: 1, ‘b’: 2}使用元组的方式初始化字典(比较少见);d = dict(((‘a’,1),(‘b’, 2)))print(d) #输出:{‘a’: 1, ‘b’: 2}使用字典构造器的构造方法fromkeys() 来通过可迭代对象批量的传值;d = dict.fromkeys(range(5), ‘hello’)print(d) #输出:{0: ‘hello’, 1: ‘hello’, 2: ‘hello’, 3: ‘hello’, 4: ‘hello’}3.字典的访问d = {‘a’:10, ‘b’:20}d.setdefault(‘c’, 30) # 设置默认值print(d[‘a’]) #输出:10print(d.get(’d’, None)) #输出:Noneprint(d) #输出:{‘a’: 10, ‘b’: 20, ‘c’: 30}字典可以通过key来访问;使用setdefault()方法来设置默认值(只能加一个新的值,不能覆盖原有值);使用get()方法通过key来访问字典,当key存在时,返回value值,key不存在时返回则None;4.字典修改d = {‘a’:1, ‘b’:2}d.update({‘c’: ‘3’})print(d) #输出:{‘a’: 1, ‘b’: 2, ‘c’: ‘3’}d[‘a’] = 10print(d) #输出:{‘a’: 10, ‘b’: 2, ‘c’: ‘3’}使用update()方法来修改字典;直接使用key来修改字典;5.字典插入直接使用key来插入;d = {‘a’:10, ‘b’:20}d[‘c’] = 30print(d) #输出:{‘a’: 10, ‘b’: 20, ‘c’: 30}6.字典的删除d = {‘a’:10, ‘b’:20}pop:通过pop()方法删除指定key的value;d.pop(‘a’,None)print(d) #输出:{‘b’: 20}popitem:随机删除任意键值对;d.popitem() #删除任意键值对print(d) #输出:{‘a’: 10}clear:删除字典所以元素;d.clear()print(d) #输出:{}del:通过del魔术方法删除指定key的value;del d[‘a’]print(d) #输出:{‘b’: 20}7.字典的遍历d = {‘a’:10, ‘b’:20}# key的遍历for key in d: print(key)for key in d.keys(): print(key)# value的遍历for key in d: print(d[key])for key in d.keys(): print(d.get(key))# key/value遍历for item in d.items(): print(item)for key,value in d.items(): print(key, value)字典可以使用for来遍历的;for循环可以单独遍历key,单独遍历value,key和value一起遍历;单独遍历key或者value时需要用到keys;key和value一起遍历需要是用到items;8.标准库中的字典默认字典:defaultdict,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值,默认字典初始化什么类型,返回值对应该类型的空值 (如int返回0,str返回空字符串);from collections import defaultdictdict1 = defaultdict(int) # 默认值是0print(dict1[1]) #输出:0print(dict1[2]) #输出:0dict2 = defaultdict(set) # 默认的是set( )print(dict2[1]) #输出:set()print(dict2[2]) #输出:set()dict3 = defaultdict(str) # 默认是空字符串print(dict3[1])dict4 = defaultdict(list) # 默认是空列表[]print(dict4[1]) #输出:[]有序字典:OrderedDict,记录了key插入的顺序,也就是让无序的字典变为有序;from collections import OrderedDictimport randomd = {‘赵’: 1, ‘钱’: 2, ‘孙’: 3, ‘李’: 4}keys = list(d.keys()) #把键值存入列表中print(keys) #输出:[‘赵’, ‘钱’, ‘孙’, ‘李’]random.shuffle(keys) #随机打乱列表中的keys值print(keys)order_d = OrderedDict() #创建一个有序字典对象for key in keys: order_d[key] = d[key]print(order_d.keys())参考:https://www.9xkd.com/user/pla…