字典

字典Dict

Dict即Dictionary,也称为mapping。
Python中,字典由任意个元素构成的集合,每一个元素称为Item,也称为Entry。这个Item是由(key,value)组成的二元组。
字典是可变的、无序的、key不重复的key-value pairs键值对集合。

 

初始化

  • dict(**kwargs) 使用name=value对初始化一个字典
  • dict(iterable, **kwarg) 使用可迭代对象和name=value对构造字典,不过可迭代对象的元素必须是一个二元结构**
  • dict(mapping, **kwarg) 使用一个字典构建另一个字典

类方法dict.fromkeys(iterable, value)
d = dict.fromkeys(range(5))
d = dict.fromkeys(range(5), 0)

 

 

 

元素访问

  • d[key]

                返回key对应的值value
                key不存在抛出KeyError异常

  • get(key[, default])

               返回key对应的值value
               key不存在返回缺省值,如果没有设置缺省值就返回None

  • setdefault(key[, default])

              返回key对应的值value
              key不存在,添加kv对,value设置为default,并返回default,如果default没有设置,缺省为None

 

 

 

新增和修改

  • d[key] = value

            将key对应的值修改为value
            key不存在添加新的kv对

  • update([other]) -> None

              使用另一个字典的kv对更新本字典
              key不存在,就添加
              key存在,覆盖已经存在的key对应的值
              就地修改

 

 

 

删除

  • pop(key[, default])

                 key存在,移除它,并返回它的value
                 key不存在,返回给定的default
                 default未设置,key不存在则抛出KeyError异常

  • popitem()

                 移除并返回一个任意的键值对
                 字典为empty,抛出KeyError异常

  • clear()

                 清空字典

 

 

 遍历

 

 

 

 

 

 

在使用keys、values、items方法遍历的时候,不可以改变字典的size

 

 

Python3中,keys、values、items方法返回一个类似一个生成器的可迭代对象

  • Dictionary view对象,可以使用len()、iter()、in操作
  • 字典的entry的动态的视图,字典变化,视图将反映出这些变化
  • keys()返回一个类set对象,也就是可以看做一个set集合。如果values()都可以hash,那么items()也可以看做是类set对象

Python2中,上面的方法会返回一个新的列表,立即占据新的内存空间。所以Python2建议使用
iterkeys、itervalues、iteritems版本,返回一个迭代器,而不是返回一个copy

 

key
字典的key和set的元素要求一致

  • set的元素可以就是看做key,set可以看做dict的简化版
  • hashable 可哈希才可以作为key,可以使用hash()测试
  • 使用key访问,就如同列表使用index访问一样,时间复杂度都是O(1),这也是最好的访问元素的方式

 

posted @ 2022-08-09 14:39  45645+56  阅读(51)  评论(0)    收藏  举报