zoukankan      html  css  js  c++  java
  • python 字典增删改查 嵌套 其他操作

     

    ---恢复内容开始---

        1.字典的简单介绍:

              字典(dict)是python中唯一的一个映射类型. 它是以{}括起来的键值对组成.在dict中key是

             唯一的.在保存的时候,根据key来计算出一个内存地址.然后将key-value保存这个地址中.

             这种算法叫做hash算法.所以.切记在dict中储存的key-value'必须是可hash的.

             如果搞不懂什么是哈希.暂时可以这么记.可以改变的都是不可哈希的.

             
             

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

             不可哈希的(可变)的数据类型: list  dict  set 

        

          语法:{key1:value,key2:value2.....}

          注意:key必须是不可变(可哈希的).value没有要求.可以保存任何数据类型

      

    dic = {123:456,True:999,"id":1,"name":sylar,"age":18,"stu":['帅哥','美女'],(1,2,3):'麻虎
      print(dic[123])
      print(dic[True])
      print(dic['id'])       #正确输入法
      print(dic['stu'])
      print(dic[(1,2,3)]) 

           dict保存的数据不是按照顺序保存的.是按照hash的顺序保存的.而hash表不是连续的.

      所以不能进行切片工作.他只能通过key来获取dict的数据

        2.字典的增删改查和其它的相关操作

          1.增加

            


             dic = {} # 如果dict中没有出现这个key, 就会新增⼀个key-value的组
             dic['name'] = '周润发'                    dic['age'] = 18          print (dic) 
             

               如果dict中么有出现过这个key-value.  可以通过setdefault设置默认值

               dic.setdefault('李嘉诚')      可以往里面设置值

               dic.setdefault ("李嘉诚", "房地产")  如果dict中已经存在了. 那么setdefault将不会 起作⽤

               print(dic)

          2.删除:

          

          
    ret = dic.pop("jay")
    print(ret)

    del dic ["jay"]
    print(dic)

    随机删除.
    ret = dic. popiter()
    print(dic)

    清空字典中的所有内容
    ret = dic.clear
    print(dic)

          3.修改:

    dic = {"id":123,"name":'sylar',"age":18}
    dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
    dic . update(dic1) 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存 在key, 则新增.
    print(dic)
    print(dic1)

          4.查询:

    dic = {"id":123,"name":'sylar',"age":18}
    print(dic['name'])
    print(dic['sylar'])     #删不了, 报错
    print(dic.get("ok"))
    print(dic.get("sylar"))      None
    print(dic.get("sylar","牛B"))     牛B

          5.其他相关操作

    dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
    print(dic.keys())  # dict_keys(['id', 'name', 'age', 'ok']) 不⽤管它是什么.当 成list来⽤就⾏
    for key in dic.keys():
        print(key)
    dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
    
    
    print(dic.values())  # dict_values([123, 'sylar', 18, '科⽐']) ⼀样. 也当 list来⽤ 
    
    
    

    #
    list 来用 for value in dic.values(): print(value) print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科⽐')])
                     这个东⻄也是list. 只不过list中装的是tuple
    for key, value in dic.items(): print(key,value)

    #解构
        
    a, b = 1, 2
    # print(a,b)
    # c,d = 3,4
    # print(c,d )
    # e,f = [1,2]    #解构的时候注意数量必须匹配
    # print(e,f )

       3.字典的嵌套:

          

    dic1 = {"name":"汪峰",
            "age":18,
            "wife":{
                "name":'章子怡',
                "age":28
            },
            "children":['第一个毛孩子','第二个毛孩子'],
            "desc":'峰哥不会告诉我吧.莫关系.我想上头条'
    }
    print(dic1.get("wife").get("name"))
    print(dic1.get("wife").get("name"))
    print(dic1.get("children")[1])












                

    ---恢复内容结束---

  • 相关阅读:
    python的生成Jwt
    qq邮箱验证
    DJango反序列化器的参数效验
    python三元运算,继承,help函数 args
    python时间板块,计算取值,math函数
    No migrations to apply. django同步数据库失败
    redis理论部分
    Java入门——day1
    HBO《硅谷》中的二进制码
    复习总表现(每天记录一下)
  • 原文地址:https://www.cnblogs.com/SUIFAN/p/9275386.html
Copyright © 2011-2022 走看看