6. 字典
字典是什么
字典(dict) 是一种key-value
键值对的数据的集合,它是可变的、无序的、key去重的。
字典的定义(初始化)
字典的key与hash
key的要求与set一致,set可以看作简化版dict。
只有可hash的元素才可以作为key,可以用hash()
测试。
字典的增删查改
通过key查找
通过get查找
找不到返回缺省值,默认返回None
,如果有定义缺省值则返回缺省值。
通过setdefault设置
如果找到则不设置缺省值,找不到添加到词典,默认使用None
,如果有定义缺省值则使用缺省值。
通过key赋值
将key对应的值修改为value
key不存在则添加
通过update更新
返回None
key不存在就添加,存在的话就覆盖现有的值,就地修改。
pop操作
key存在:移除并返回指定键值对
如果定义了default:key不存在,返回default。
如果未定义default:key不存在返回异常。
popitem操作
随机移除并返回任意键值对,dict为空时返回异常。
clear操作
清空字典。
遍历操作
字典遍历的总结
Python3中,keys
values
items
返回的都是一个类似生成器的可迭代对象,不会把函数的返回结果复制到内存中
返回Dictionary view对象,可以使用
len()
iter()
in
操作字典的entry的动态视图,字典变化,视图将反映出这些变化。
keys返回一个
类set
对象,也就是可以看作一个set集合。如果values都可以hash,那么items也可以看作是
类set
对象。
Python2中,上面的方法会返回一个新的列表,占据新的内存空间。所以建议使用iterkeys
, itervalues
, iteritems
版本,返回一个迭代器,而不是一个copy。
Python3中,遍历过程中不能增删kv对。如果要删除,需要构建一个可迭代对象保存keys()。
defaultdict与OrderedDict
OrderdDict 仅在3.6之前有效
Last updated
Was this helpful?