• 字典


    day05

    字典--python数据类型之一

    • 字典关键字--dict

    • 字典:无序,可变,可迭代,数据类型

    • 键:可哈希(不可变)且唯一

    • 不可变数据 可哈希

    • 可变数据 不可哈希

    • 不可哈希:int(整型)和bool(布尔值)

    • 字典的特性:

      1. 存储量比列表要大
      2. 运行速度比列表快
      3. 可以存储多种数据类型
      4. 将数据和数据之间关联
    • 字典的增加:

      • dic["键"] = "值"

        dic = {}                    #定义一个空的字典
        dic[1] = "狮子"              #添加一个键值对
        dic[2] = "老虎"              #再添加一个键值对,默认在最后添加
        print(dic)                  #查看添加后的字典
        
      • dic.setdefault("键","值")

        dic = {}                #定义一个空的字典
        dic.setdefault(1,"狮子") #添加一个键值对
        dic.setdefault(2,"老虎") #再添加一个键值对,默认在最后添加
        print(dic)              #查看添加后的字典
        
      • dic.update ({3:"傻傻分不清楚"})

        dic = {1:"狮子",2:"老虎"}             #定义一个字典
        dic.update({3:"傻傻分不清楚"})         #添加键值对,默认最后一个
        print(dic)                           #查看字典
        
    • 字典的删除

      • del dic 删除整个定义的字典

        dic = {1:"狮子",2:"老虎"}    #定义一个字典
        del dic                     #删除整个字典
        print(dic)                  #查找字典时报错,没有定义这个字典
        
      • dic.pop(键) 根据键删除字典的键值对,有返回值,是被删除的值

      • dic.pop()   括号发黄时,括号中需要参数

        dic = {1:"狮子",2:"老虎"}      #定义一个字典
        dic.pop(1)                    #删除字典中的键值对,且返回值
        print(dic)                    #查看删除后的字典
        
      • dic.popitem()            随机删除    python3.6默认删除最后一个

        dic = {1:"狮子",2:"老虎"}      
        dic.popitem()
        print(dic)
        
      • dic.clear 清空

        dic = {1:"狮子",2:"老虎"}        #定义一个字典
        dic.clear                       #清空字典的内容
        print(dic)                      #查看字典,结果是一个{}
        
    • 字典的改

      • 键的改

        dic = {1:"狮子",2:"老虎"}         #定义一个字典
        dic[1] = "老虎"                  #更改字典中对应的键
        print(dic)                      #查看
        
      • dic.update

        dic = {1:"狮子",2:"老虎"}
        dic.update({2:"傻傻分不清楚"})
        print(dic)
        
        • 字典的合并 dic.update({需要合并的字典})

          dic = {1:"狮子",2:"老虎"}
          dic.update({3:"傻傻分不清楚",4:"你好"})
          print(dic)
          
    • 字典的查

      • dic.get(键)

        • 如果键值不存在,返回值为None
        dic = {1:"狮子",2:"老虎"}        #定义一个字典
        print(dic.get(1))               #查找1对应的键值,具有返回值
        print(dic.get(3,"不存在"))       #可以指定返回值
        
      • 根据键查找

        • 如果不存在,就会保存
        dic = {1:"狮子",2:"老虎"}       #定义一个字典
        print(dic[1])                  #查找对应的键值
        
      • dic.setdefault (键)

        • 如果不存在,就会自动添加该键,返回值为None
        dic = {1:"狮子",2:"老虎"}        #定义一个字典
        print(dic.setdefault(1))        #查找1对应的键值
        print(dic.setdefault(3))        #查找不到,添加到最后一位,结果为None
        print(dic)                      #其结果为dic = {1:"狮子",2:"老虎",3:None}
        
      • 高仿列表可以迭代

        for k,v in dic.items()
                print(k,v)
        
      • dic.keys() 获取字典中的键

        • 查出字典中所有的键

          dic = {1:"狮子",2:"老虎"}           #定义一个字典
          print(dic.keys())                  #以高仿列表的方式打印
          
        • 如果出现字典的嵌套,可以打印嵌套中吗?

          dic = {1:"狮子",2:"老虎",3:"傻傻分不清楚",4:{3:"老虎",4:"狮子",5:"老虎"}}
          #dic.keys()只打印字典第一层的键
          print(dic.keys())               #结果1  2  3  4
          
      • dic.values() 获取字典中的值

        • 查出字典中所有的值

          dic = {1:"狮子",2:"老虎"}            #定义一个字典
          print(dic.values)                          #以高仿列表的方式所有的值
          
        • 如果出现字典的嵌套,可以打印吗?

          dic = {1:"狮子",2:"老虎",3:"傻傻分不清楚",4:{3:"老虎",4:"狮子",5:"老虎"}}
          #dic.values()  嵌套中的字典会以值得方式打印
          print(dic.values())    
          #结果为dict_values(['狮子', '老虎', '傻傻分不清楚', {3: '老虎', 4: '狮子', 5: '老虎'}])
          
    • 解构

      a,b,c = 1,2,3        #解构的赋值是迭代赋值,可迭代对象之间可以不加逗号,不可迭代对象之间必须加逗号                        分割
      print(a,b,c)         #结果为1  2   3
      a,b,v = "你好啊"
      print(a,b,c)         #结果为你   好    啊
      
      • 当变量超出赋值对象对报错

      • 当赋值对象超出变量时,也会报错

        • 解决方式

          a,b,*c = 1,2,3,4,5,6,7      #最后一个变量将剩余的值以列表的方式全部赋值给他
          print(a,b,c)                #结果为1  2  (3,4,5,6,7) 
          
        • a,b,*c = 1,2,3,4,5,6,7      #打包
          print(a,b,c)                #解包
          
    • 字典的嵌套

      dic = {1:"狮子",2:"老虎",3:"傻傻分不清楚",4:{3:"老虎",4:"狮子",5:"老虎"}}
      #字典的嵌套可以在嵌套外和嵌套内的键值相同,且不相互影响,但一般不建议这样写
      print(dic[4][4])
      
    • 字典和列表的区别

      1. 字典比列表存储要更大
      2. 字典比列表查找速度更快
      3. 字典比列表查找更方便
  • 相关阅读:
    pat 1029. Median (25)
    pat 1040. Longest Symmetric String (25)
    pat 1037. Magic Coupon (25)
    pat 1058. A+B in Hogwarts (20)
    pat 1083. List Grades (25)
    pat 1054. The Dominant Color (20)
    pat 1042. Shuffling Machine (20)
    pat 1061. Dating (20)
    *分支-11. 计算工资
    分支-10. 计算个人所得税
  • 原文地址:https://www.cnblogs.com/g15009428458/p/12170654.html
Copyright © 2020-2023  润新知