8 python基础-字典

1. 定义:

    Dictionnary(字典)是Python最常用的数据类型,它使用方括号{}来标识,其元素为key-value对应,key与value用冒号:分割开。字典元素刻印是任意类型,但是元素key值必须为不可变变量(只能为字符串,数字,元组,不可变集合(frozenset())),value的值没有限制,key值如果重复,后面的key-value会覆盖之前的(相当于重新赋值)。字典是可变变量

2. 创建字典:

              

    多类型key值字典

        

     使用变量作为key

        

  3. 字典内容获取:

      因为字典元素是由key-value组成的,因此访问元素需要通过key来实现

         

      当访问的key不存在时,则会报异常:

         

           字典是无序的,因此不支持索引和切片操作

   4. 字典基本操作:

      4.1 len(字典):返回字典长度(也就是key的个数)

           

       4.2 str(字典):将字典转换为字符串(不可逆

            

            将字符串转换为字典,系统将会报错

              

      4.3 max,min函数同样适用字典,操作的对象是key(字典存关心的是value的值),并且key的值只能为数字类型,因此意义不大

   5. 更新字典:

       5.1 修改指定key对应value的值

            字典[key] == x

               

        5.2 删除字典元素

             del 字典[key]

                 

        字典为可变变量,修改元素后地址不改变

                 

      6. 字典内置函数:

        6.1  字典.clear(): 清空字典

             

        6.2  字典.copy():浅拷贝字典(拷贝之后,地址发生改变)

            

           区别于 复制操作:将字典的地址赋值给新的变量(注意不是值,而是地址,复制操作相当于增加外号)

             

           区别于深拷贝(借助copy模块使用)

             浅拷贝是将值赋值给新的变量,但是如果value中存在序列或者集合时,value的值则没有进行拷贝

                

      由此可以看出,浅拷贝时,当value的元素为可变变量时,修改该value时,会影响到其他变量,因此此处需要深拷贝,使用深拷贝,需要借助copy模块实现

               

                  6.3 dict.fromkeys(seq, val=None):  使用seq序列或者集合作为key,并将所有的value设置为val(val可以省略,此时所有的value为“None”)

                             

               注意:因为序列的作用是作为字典的key,因此序列或集合中不能包含可变变量,本身则无限制

                         

       6.4 字典.get(key,default=None) 判断key对应的value值是否存在,存在则返回对应的value值,不存在则返回default对应的值,默认为None

                       

        6.5 字典.setdefault(key, default=None):如果对应的key不存在,在将key-default加入字典

                      

        6.6 字典.keys():返回所有key(其类型为dict_keys),可以通过for循环获取数据

                      

         6.7 字典.values():返回字典所有value值

                   

         6.8  字典.items() :以列表的方式返回可以遍历的(键 值)元组

                    

         6.* 字典.update(dict2):将字典dict2中的键值对添加到字典中

                   

           6.10字典.pop(key [,default]): 删除指定key对应的值,若key存在,则删除key对应的值,并返回,default忽略;若key不存在,返回default,default不存在时,返回异常。

                   

             6.11 字典.popitem():随机删除字典中的一对键值(一般是末尾一对)

                   

             6.12  key  in 字典 :判断key是在在字典中

                  

                 

猜你喜欢

转载自blog.csdn.net/huiseqiutian/article/details/80661329