五、字典

字典是一种映射,这种数据结构通过名称来访问其各个值。

特点:1、字典是Python中唯一的内置映射类型

   2、字典的值不按顺序排列

   3、值存储在键下

   4、键可能是数、字符串或元祖

   5、在字典中,键必须是独一无二的,而字典中的值无需如此

1、字典的用途

  字典旨在让人能够轻松地找到特定的单词(键),以获悉其定义(值)。

2、创建和使用字典

  字典由键及其相应的值组成,这种键-值对称为项。

  每个键与其值之间都用冒号( : )分隔,项之间用逗号分隔,整个字典放在花括号{}内。

  空字典用两个花括号表示,{}。

 2.1 函数dict

    可使用函数dict从其它映射或键-值对序列创建字典。

    

     用关键字实参来调用这个函数

    

 2.2 基本的字典操作

    1、len(d)返回字典d包含的项(键-值对)数

    2、d[key] 返回与键key相关联的值

    3、d[key] = value 将值value关联到键key

    4、del d[k] 删除键为k的项

    5、k in d  检查字典d是否包含键为k的项

    6、字典和列表的区别:

      (1)键的类型,字典中的键可以是任何不可变的类型,如浮点数(实数)、字符串或元组。

      (2)自动添加,即便字典中原本没有的键,也可以给它赋值,这会创建一个新项。列表需要使用类似append方法,才能给元素赋值

      (3)成员资格,表达式 k in d 查找的是键而不是值,表达式v in l 查找的是值而不是索引

 2.3 遍历字典

    2.3.1遍历所有的键值对

     

    2.3.3 遍历字典中的所有键

      

      遍历字典时,会默认遍历键,为了代码可读性,通常使用keys()方法

      方法keys(),返回一个列表,其中包含字典中的所有键。

    2.3.3 按顺序遍历字典中的所有键

      使用sorted()对字典返回的键进行排序。

         

    2.3.4 遍历字典中的所有值

      

      方法values(),返回一个值列表。

    2.3.5 集合

      剔除重复项,可使用集合set。

      集合类似与列表,但是用花括号括起来,且其中每个元素都是独一无二的。

      

 2.4 将字符串格式设置功能用于字典

    必须使用format_map来指出你将通过一个映射来提供所需的信息。

    

 2.5 字典方法

    1、clear

      方法clear删除所有的字典项,此操作就地执行,返回None

             

    2、copy

      copy属于浅复制,返回一个新字典,其包含的键-值对与原来的字典相同。当替换副本中的值时,原件不受影响;修改副本中的值(就地修改而不是替换),原件也将发生变化。

      

       deepcopy()执行深复制,即同时复制值及其包含的所有值。

    3、fromkeys

      方法fromkeys创建一个新字典,其中包含指定的键,且每个键对应的值都默认是None

      

    4、get

      使用get访问字典项中不存在的键时,不会引发异常,而是返回None

      

    5、items

      方法items返回一个包含所有字典项的列表,其中每个元素都为(key,value)的形式。

      

      返回值属于字典视图的特殊类型,其可以用于迭代,可确定其长度和成员资格检查,它始终是底层字典的反应。

    6、keys

      方法keys返回一个字典视图,其中包含指定字典中的键

    7、pop

      方法pop可用于获取与指定键相关联的值,并将该键-值对从字典中删除。

    8、popitem

      方法popitem类似与list.pop,但是popitem随机的弹出一个字典项,因为字典项的顺序不确定。

    9、setdefault

      setdefault方法获取指定键相关联的值,当字典在不包含指定键时,自动添加指定的键-值对。

      

    10、update

      方法update使用一个字典中的项来更新另一个字典

      

      通过参数提供的字典,将其项添加到当前字典中,如果当前字典包含键相同的项,就替换它

    11、values    

      方法values返回一个由字典中的值组成的字典视图。    

    

  

猜你喜欢

转载自www.cnblogs.com/nuochengze/p/12434037.html