zoukankan      html  css  js  c++  java
  • 字典的增删改查和其他操作, 以及字典的嵌套

    1.字典

    字典是以key:value的形式来保存数据

    用{}表示. 存储的是key:value

    2. 字典的增删改查(重点)
        

            ① 添加

            dic[新key] = 值

    dic = {"意大利": "李云龙", "美国": "美国往事"}
    
    dic["日本"] = "东京审判"  # 新key表示添加
    dic['韩国'] = "釜山行"

        setdefault()

    setdefault (难点)
     # 有添加的功能,如果key是存在的. 不添加
     # 流程: 判断你给的key是否在字典中存在了.如果已经存在了. 就不再新增. 如果不存在. 执行新增操作
    
    dic.setdefault("美国", "三傻大闹宝莱坞")
    print(dic)

          ②  删除

            pop(key)

    dic = {"张艺谋":"红高粱", "李安":"断臂山", "陈凯歌":"霸王别姬", "郭德纲":"祖宗十九代"}
    dic.pop("郭德纲") # 你要记住的
    dic.popitem() # 随机删除一项. 在python早期版本  字典是无序的.
    del dic["李安"]
    dic.clear() # 清空
    print(dic)

         ③  修改


          dic[老key] = 值
          update() 跟新字典

    dic = {"河南":"胡辣汤", "开封": "灌汤包", "武汉":"热干面"}
    # # dic['河南'] = "烩面" # 老key = 值
    # print(dic)
    
    # dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    # dic2 = {"赵四":"宝宝", "刘能":"萌萌", "皮校长":"皮长山"}
    #
    # dic1.update(dic2) # 把dic2怼到dic1里面. 把dict2中的内容更新到dic1
    # print(dic1)
    # print(dic2)


         ④  查询
               dic[key]
               get(key, 值)
            setdefault(key, value)

    dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    
    # 1. 直接使用key就可以拿到value
    # print(dic1["赵四四"]) # KeyError: '赵四四' key不存在
    
    
    # 2. get(key)
    # print(dic1.get("刘能能"))  # None 当key不存在返回None
    # print(dic1.get("刘能能", "没有这个人")) # 当key不存在. 返回第二个参数. 默认第二个参数是None
    
    # 3. setdefault() 第一个功能是添加(当key不存在). 第二个功能是查询(根据你给的key查询)
    # 整个执行流程: 判断给的key是否存在. 如果存在. 就不执行新增流程.直接查询出这个key对应的value
    # 如果key不存在. 先执行新增操作. 再使用key把对应的value查询出来
    # ret = dic1.setdefault("皮长山", "皮校长")
    # print(ret) # 皮校长
    
    # ret = dic1.setdefault("王木生", "宝宝")
    # print(ret) # 范伟


          ⑤  遍历, 

                字典是一个可迭代对象

     

    3. 字典的相关操作


      ① keys() 获取到所有的键
      ② values() 获取到所有的值
      ③ items() 拿到所有的键值对.
      ④ 字典的嵌套
                字典的嵌套. 字典套字典

    wf = {
        "name":"汪峰",
        "age":52,
        "hobby":["唱歌", "上头条", "穿皮裤"],
        "wife": {
            "name": "章子怡",
            "age": 49,
            "hobby":["演戏", "上电视", "当导师"],
            "tishen": {
                "name":"萌萌",
                "age":28
            },
            "zhuli":{
               "name":"磊磊",
               "age": 20
            }
        },
        "zhuli":{
            "name":"宝宝",
            "age":23,
            "hobby":["抽烟","喝酒","烫头"]
        },
        "children":[{"name":"汪老大"}, {"name":"汪老二"}]
    }
    # wf['children'][1]["age"] = 2
    # print(wf)
    # # print(wf['zhuli']['name'])
    #
    # # 汪峰老婆替身的名字
    # print(wf['wife']['tishen']['name'])
    # # 汪峰老婆的第二个爱好
    # print(wf['wife']['hobby'][1])
    # # 汪峰助理的第三个爱好
    # print(wf['zhuli']['hobby'][2])
    #
    #
    # # 汪峰的助理+10岁
    # wf['zhuli']['age'] = wf['zhuli']['age'] + 10
    # # 汪峰的老婆添加一个爱好("导戏")
    # wf['wife']['hobby'].append("导戏") # 添加完毕了
    # # 删除汪峰助理的"抽烟"爱好
    # wf["zhuli"]["hobby"].remove("抽烟")
    # print(wf)

    5. 集合(不重要). 去重复


      集合中的元素是不重复的. 必须是可哈希的(不可变), 字典中的key
      空集合:set()
      空元组:tuple()
      空列表:list()
      非空集合: {123}集合, 集合其实就是不存value的字典

     

     

    思考题:

    字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}  (升级题)
    
    
    
    s = "k:1|k1:2|k2:3|k3:4"
    li = s.split("|")
    print(li)
    dic = {}
    for i in li:
        print(i)
        p = i.split(":")
        print(p)
        dic.setdefault(p[0],int(p[1]))
    print(dic)
  • 相关阅读:
    512M内存机器如何用好Mysql
    linux下查找文件和文件内容
    记“debug alipay”一事
    OFBiz中根据店铺获取产品可用库存的方法
    ubuntu中安装eclipse
    ubuntu中安装jdk
    ubuntu14.04中解压缩window中的zip文件,文件名乱码的解决方法
    apache将请求转发到到tomcat应用
    网站不能访问的原因
    birt报表图标中文显示为框框的解决方法
  • 原文地址:https://www.cnblogs.com/selina1997/p/10046560.html
Copyright © 2011-2022 走看看