zoukankan      html  css  js  c++  java
  • 05 dic的增删改查 字典的嵌套 考试题dic.get()的相关使用

    主要内容

    1.字典的介绍

      用大括号{}括起来,内部使用key:value来保存数据

           在dict中存储的key-value中的key'必须是可hash的,哈希就是不可变的

           已知的可哈希(不可变)的数据类型: int, str, tuple, bool 不可哈希(可变)的数据类型: list, dict, set

    dic = {'jay':"周杰伦", "jj":"林俊杰", "eason":"陈奕迅"}
    print(dic)                                                          ###对的
    dic = {1: "马化腾", False:"阿里巴巴", "sylar":"帅的不行不行的", (1, "哈哈"): "元组", ["吼吼"]:"列表"}
    print(dic)                                                          ###错的,列表不可以作为关键字

    2.字典的增删改查

       添加:

    #两种方式添加
    dic = {'jay':"周杰伦", "jj":"林俊杰", "eason":"陈奕迅"}
    print(dic)
    dic["ad"]="广告"           #如果key已经存在,value会替代原来的值
    print(dic)
    dic.setdefault("ad","广告")#如果key已经存在,不会起作用
    print(dic)
      删除
    有四种方法:dic.pop("key") 通过关键词删除
           del dic["key"]
           dic.popitem() 随机删除
    dic.clear() 清空
    dic={"牌牌":"去哪了","小雪":"你快回来","雪雪":"又走了"}
    dic.pop("雪雪")
    print(dic) 
    dic={"牌牌":"去哪了","小雪":"你快回来","雪雪":"又走了"}
    del dic["雪雪"]
    print(dic)
    dic={"牌牌":"去哪了","小雪":"你快回来","雪雪":"又走了"}
    dic.popitem()
    print(dic)
      修改
    dic={"id":1,"name":"李嘉诚","money":100000}
    dic["money"]=dic["money"]-10000
    print(dic)
    

      dic.update()

    dic1 = {"李晨":"范冰冰", "邓超":"孙俪", "王祖蓝":"李亚男"}
    dic2 = {"李晨":"张馨予", "郑凯":"baby", "王宝强":"马蓉"}
    dic1.update(dic2)   #  把dic2中的内容更新到 dic1 , 如果存在了key. 替换. 如果不存在,添加
    print(dic1)
    print(dic2)
    

       查找:查询一般用key来查找具体的内容

    dic = {"及时雨":"宋江", "小李广":"花荣", "黑旋风":"李逵", "易大师":"剑圣"}
    dic["大宝剑"] = "盖伦"   # 新增
    dic["及时雨"] = "天老爷" # 修改
    print(dic["易大师是个脑残"])   # 查询, 如果key不存在,报错
    print(dic.get("易大师", "余小C"))   # 如果key不存在. 返回None
    get()
    可以通过key来获取value的值. 那么如果key不存在. 返回None.
    可以给出一个默认值. 当key不存在的时候返回默认值
    dic1={"谢娜":"张杰的老婆",'昆凌':'周杰伦的老婆','章子怡':'汪峰的老婆'}
    print(dic1.get('谢娜'))
    print(dic1['谢娜'])
    print(dic1['高圆圆'])          #如果原来的字典中没有关键词,查询的时候会报错。
    print(dic1.get('高圆圆'))        #如果原来的字典中没有关键词,查询的时候会返回None
    print(dic1.get('高圆圆',2))       #如果原来的字典中没有关键词,查询的时候也可以设置默认值。
    ret=dic1.setdefault('谢娜','赵又廷的老婆')
    print(ret)
    print(dic1)  

      dic.key()  dic.value()  dic.items() 

    dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
    print(dic.keys())                   # 拿到所有的key, 返回key的集合. 像是列表. 但是不是列表
    for key in dic.keys():              # 可以进行迭代循环
        print(key)  
    dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
    print(dic.items())                  # 拿到键值对
    # 遍历dict
    for k, v in dic.items():            #这个是解构
        print(k , v)
    

    3.字典的嵌套

    dic = {
        "name":"汪峰",
        "age": 58,
        "wife":{
            "name":"国际章",
            "salary": 180000,
            "age": 37
        },
        "children":[
            {"name":"老大", "age": 18},
            {"name":"老二", "age": 118}
        ]
    }
    print(dic.get("wife").get("name"))
    print(dic["wife"]['salary']) 
    国际章
    180000
    

     字典的for循环:

    dic = {1: 'a', 2:'b', 3:'c'}
    for a in dic:   # 直接循环字典.拿到的是key
        print(a)
        print(dic[a])
    

     4. 考试题(注意dic.get()的使用,默认返回none)

    # li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    # result = {}
    # for row in li:
    #     if row < 66:
    #         s1 = result.get("k1")
    #         if s1 == None:
    #             result["k1"] = [row]       #[row]容易出现错误
    #         else:
    #             result['k1'].append(row)
    #     else:
    #         s2 = result.get("k2")
    #         if s2 == None:
    #             result["k2"] = [row]
    #         else:
    #             result['k2'].append(row)
    # print(result)
    

      

     

      

     

          

      

  • 相关阅读:
    golang 类型断言的学习
    如何查询每个用户的第二条记录
    PHP Slim 框架初体验之无法访问控制器
    jquery循环遍历radio单选按钮,并设置选中状态
    CI框架中自定义view文件夹位置
    PHP代码实现MySQL读写分离
    mysql实现主从复制
    wildflyのデプロイ後の保存位置
    postgresql function
    shell backup
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9275416.html
Copyright © 2011-2022 走看看