2018.8.1笔记(字典的增删改查,操作,嵌套,)

一. 字典(字典在遍历时不能修改)

dict 用{}来表示 键值对数据 {key:value} 唯一性

键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键

值 没有任何限制


二.字典的增删改查
1.增加
(1) dic[key] = value #强制增加

dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加

可以通过key查询,没有这个key返回None
例题:
dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
dic['火女'] = '人头狗'   # 新增
print(dic)
dic.setdefault('火女','安妮')     # 如果在字典中存在就不进行任何操作,不存在就进行添加
dic.setdefault('火女','火男')
2.删除 
pop(key) 有返回值 返回的是被删除value
del dic[key]
popitem() 随机删除
clear() 清空字典
例题:
dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
ret = dic.pop('易大师')  #通过key删除  返回被删除的value
print(ret)
del dic['剑豪']#del 在字典里只能删除一个 或删除表(del dic)
dic.clear()   #清空字典 {}
ret = dic.popitem()   #随机删除  返回值 一个元组  (key,value)
print(ret)
3.修改
dic[key] = value #强制修改
dic.update(字典)#更新
例题:
dic['剑豪'] = '哈莎阁'   # 强制修改
dic1 = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'}
dic1.update(dic)# 用dic 去更新dic1
print(dic1)
4.查询
get(key)#没有这个键的时候查询会报错
dic[key]#没有返回None 可以指定返回内容
for 循环  元组  键  值   键值对
setdefault(key)#没有返回None 可以指定返回内容
例题:
for i in  dic:
print(i)     #for 循环默认是获取字典中的键
print(dic['易大师父'])                   #查看1   没有这个键的时候查询会报错
print(dic.get('易大师','你傻啊,没有!'))    #查看2   没有返回None 可以指定返回内容
print(dic.setdefault('易大师范湖'))        #查看3    没有返回None
三.字典的其他操作:

keys 获取到所有的键存在一个高仿的列表中

values 获取到所有的值存在一个高仿的列表中

items 获取到所有的键值对已元祖的形式存在一个高仿的列表中
例题:
print(dic.keys())  # (高仿列表)
print(dic.values())  # (高仿列表)
print(dic.items())
for i in dic.keys():
     print(i)
for i in dic:
    print(i)     #获取到字典中的每一个键
for i in dic.values():
    print(i)     #获取到字典中的每一个值
for i in dic.items():#键值对
     print(i)
解构:
a,b = '12'   #将后边解构打开按位置赋值给变量 支持  字符串 列表 元组
print(a)
print(b)
dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
for a,b in dic.items():
    print(a)
    print(b)
a,b  = 1, 2
a,b  = (1,2)
a,b  = [1,2]
批量创建字典
dic1 = {}
dics = dic1.fromkeys([1,2,3],'abc')
四. 字典的嵌套:
 dic = {
            'name':'汪峰',
            'age':43,
            'wife':{
                'name':'国际章',
                'age':39,
                'salary':100000
            },
            'baby':[
                {'name':'熊大','age':18},
                {'name':'熊二','age':15},
            ]
        }
        dic['baby'][0]['age'] = 19
        print(dic)
原文地址:https://www.cnblogs.com/Bug66/p/9401612.html