day6 字典的增减查删
字典的使用
一、字典的特性
字典是无序的,数据关联性强,键值对,唯一一个映射的数据类型
字典的键必须是可哈希的(不可变的数据类型:字符串,数字,布尔值,元祖),并且是唯一的
不可哈希的(可变的数据类型:列表,字典,集合)
二、字典的增
# 直接增加 dic = {'name':'alex','age':56,'hobby':'oldwomen'} dic['weight'] = 75 # 如果不存在则直接添加 dic['name'] = 'ritian' # 如果存在则会替换原有的值 print(dic) # setdefault有键值对不做改变,没有才会添加 dic = {'name':'alex','age':56,'hobby':'oldwomen'} dic.setdefault('k') # 'k'的值默认为None dic.setdefault('k','v') # 'k'的值为'v' dic.setdefault('name','v') # 如果有这个键,则不会有改变,没有这个键才会添加 print(dic)
三、字典的删
# pop删除,有返回值 dic = {'name':'alex','age':56,'hobby':'oldwomen'} print(dic.pop('name')) # 按照键删除,返回键对应的值 # print(dic.pop('123')) # 如果键不存在则会报错 print(dic.pop('123','没有不报错')) # 此时如果没有键会返回'没有不报错',逗号后面为返回值 # popitem随机删除键值对 print(dic.popitem()) # 随机删除键值对,会将删除的键值对以元祖的形式返回 # clear清空 dic.clear() print(dic) # del删除 # del dic['name'] # 如果没有这个键会报错 print(dic)
四、字典的改
# 直接修改 dic = {'name':'alex','age':56,'hobby':'oldwomen'} dic['name'] = 'jinxin' print(dic) # update更新 dic = {'name':'alex','age':56,'hobby':'oldwomen'} dic1 = {'name':'barry','job':'teacher'} dic.update(dic1) print(dic) # 将dic1的覆盖dic,dic中有的覆盖,没有的添加进来 print(dic1) # dic1不变
五、字典的查
# 直接查 dic = {'name':'alex','age':56,'hobby':'oldwomen'} print(dic['name']) # 如果键没有会报错 # get print(dic.get('name')) # 如果没有这个键会返回None print(dic.get('name','没有这个键')) # 如果没有这个键会返回'没有这个键'
六、字典的特殊用法
# 字典里特殊的用法 dic = {'name':'alex','age':56,'hobby':'oldwomen'} print(dic.keys()) # dict_keys(['age', 'hobby', 'name'])将所有的键放入一个列表 for key in dic.keys(): # for i in dic:效果等同 print(key) print(dic.values()) # dict_values([56, 'oldwomen', 'alex'])将所有的值放入一个列表 for value in dic.values(): print(value) print(dic.items()) # dict_items([('age', 56), ('hobby', 'oldwomen'), ('name', 'alex')]) for key,value in dic.items(): print(key,value)