字典
字典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),这也是最好的访问元素的方式
本文来自博客园,作者:45645+56,转载请注明原文链接:https://www.cnblogs.com/qiuyq/p/16565995.html

浙公网安备 33010602011771号