1、数据类型
不可变数据类型:元组、bool、int、str
可变数据类型:list、dict、set
字典中,键key只能是不可变数据类型,而值value可为任意数据类型。
2、dict常用操作
dic1 = {'age': 18, 'name': 'mumu', 'sex': 'male'}
增:
dic1['height'] = 170 dic1['age'] = 20 # 没有此键值对时,则添加(增),有此键值对时,则覆盖(改) dic1.setdefault('weight', 140) # value不填时,默认为None # 有此key时,键值对不改变,无此key时,则添加(增)
print(dic1) # {'age': 20, 'name': 'mumu', 'sex': 'male', 'height': 170, 'weight': 140}
删:
dic1.pop('age') # 删除'age'键值对,有返回值,为value,此处为20 dic1.pop('mumu', '不存在此键') # 添加一个返回值,防止不存在此key而报错,此处返回值为字符串‘不存在此键’ # 常用于不知道是否存在key的情况,防止程序报错而停止运行 dic1.popitem() # 随机删,删除键值对,返回元组 dic1.clear() # 清空字典 # del dic1['name'] # 删除name键值对,但不存在时会报错 # del dic1 # 删除字典
改:
dic1['age'] = 24 # 改法一 dic = {'name': 'mumu', 'age': 18, 'height': 170} dic2 = {'name': 'mu', 'age': 20, 'sex': 'male'} dic2.update(dic) # {'name': 'mumu', 'age': 18, 'sex': 'male', 'height': 170} # dic添加和覆盖到dic2上,有则覆盖,无则添加
查:
dic.keys() # 所有的键,返回值为列表 dic.values() # 所有的值,返回值为列表 dic.items() # 所有的键值对,返回值为包含元组的列表,一个键值对为一个元组 # for循环逐个查看 for i in dic: # 只写dic时,默认查看key,故此处用dic.keys()时,结果一样 print(i) # 循环打印key for i in dic.values(): print(i) # 循环打印value for i in dic.items(): print(i) # 循环打印键值对,显示为元组,如:('name','mumu') for k, v in dic.items(): print(k, v) # 循环打印键值对,键、值独立 # print(dic['key']) # 没有此key则会报错 print(dic.get('key', '无此键')) # 无key时,返回值为字符串'无此键'
3、嵌套
dic = { 'name': ['mumu', '怪大叔', 'Superman'], 'pyStudy': { 'time': '16:00', 'date': '3.31', 'who': 'mu'}, 'age': 21 } dic['name'].append('mu哥') # 把'mu哥'添加到name中,此处对应value为列表 dic['name'][0] = dic['name'][0].upper() # 大写mumu dic['pyStudy']['how_long'] = 3 # 添加键值对到pyStudy,此处对应value为字典
在对嵌套型字典进行操作时,
首先找要操作的key,确定对应的value类型(字符串、数字、列表、字典等),
再根据对应的类型,选择合适的操作方式(不同类型一般不同)