# 字典 # 字典的value可以是任何值 # 字典的key为不可变类型,例如整型、字符串、元组均可(因为字典是以hash方式存储在内存中;吧key的hash值存在内存中,value直接存储 # 若字典的key值相同,只保留一个value值 # 字典是无序的,只能通过key值获取value di = {'name':'lwj', 'age':19} di_2 = { 'k1':'v1', 'k2':'v2', 1:'v3', ('a', 'b',):8, 'k5':[ 'a1', 'a2', { 'kk1':'a11', 'kk2':9, 'kk3':(1, 2, 'a', 'b',) } ] } # 获取kk2的值9 print(di_2['k5'][2]['kk2']) # 字典循环,默认使用的是字典的key值 for k in di.keys(): print(k) print('获取key值') for k in di: print(k) print('默认是key值') for v in di.values(): print(v) print('获取value值') for k, v in di.items(): print(k, v) print('获取key:value值') # 根据序列创建字典,可设置字典的value值 d = dict.fromkeys(['k1', 'k2', 'abc'],123) print(d) #结果为{'k1': 123, 'k2': 123, 'abc': 123} print(dict.fromkeys('abcd', 123)) #结果为{'a': 123, 'b': 123, 'c': 123, 'd': 123} # 获取可设置默认value值的字典key v = d.get('k1') print(v) #此时k1是存在的,这样或获取123结果 v1 = d.get('k3') print(v1) #此时k3是不存在,这样获取的value值为None v2 = d.get('k3','abcd') print(v2) #此时k3是不存在,这样获取的value值为默认值'abcd' d = {'a': 123, 'b': 123, 'c': 123, 'd': 123} m = d.pop('a') # 这样会删除key对应的value→123 print(d, m) #得到结果{'b': 123, 'c': 123, 'd': 123} 123 # 若删除的键值不存在,删除key值之后可以设置默认的返回值 d = {'a': 123, 'b': 123, 'c': 123, 'd': 123} m = d.pop('e','abcd') #此时删除的'e'不存在,无法删除,但是可以返回默认的value值为'abcd' print(d, m) #结果为 # popitem() #随机删除字典的key以及对应的value值,可直接获取删除的内容 d = {'a': 123, 'b': 123, 'c': 123, 'd': 123} k,v = d.popitem() print(d, k, v) # setdefault('e', 1234) # 设置key对应的值,如果key不存在则加入到字典中,若存在,则获取key当前的value值 d = {'a': 123, 'b': 123, 'c': 123, 'd': 123} v = d.setdefault('e', 1234) print(d, v) #结果为{'a': 123, 'b': 123, 'c': 123, 'd': 123, 'e': 1234} 1234 v = d.setdefault('a', 1234) print(d, v) #结果为{'a': 123, 'b': 123, 'c': 123, 'd': 123, 'e': 1234} 123 # update() #字典的两种更新方法 d = {'a': 123, 'b': 123, 'c': 123, 'd': 123} d.update(a='abc', e='eee') d.update({'b':222, 'f':'fff'})