字典是python中唯一内置映射类型。下面是本人复习《Python基础教程》(Magnus Lie Hetland)第四章的总结笔记。个人对
返回值及深浅复制不牢固,因此将其标红。
操作 | 方法 | 运用例子 | 注意事项 | |
创建 | 直接创建 | - | d={k1:v1;k2:v2} | |
从其他映射或键值对创建 | dict(seq) | items=[('name','Jack'),('age',24)] d=dict(items) | 从一个映射,一个由键值对组成的序列(或其他可迭代对象)或关键字参数创建字典 | |
创建键值为空的字典 | fromkeys |
{}.fromkeys(['name','age']) {}.fromkeys(['name','age'],'unkown') | 键值均为None或者其他指定值 | |
增 | 新增键值对 | - | d[k]=v | |
setdefault | d.setdefault(k,v) | 如果d中无键k,则新增键k,返回v,并更新字典;如果d中有键k,则字典保持不变 | ||
删 | 删除指定键值对 | del | del d[k] | |
随机删除 | popitem | d.popitem( ) | 删除的位置随机,返回一个键值对 | |
清空 | clear | d.clear( ) | 无返回值;最好不要用赋值为空字典的方式清空字典 | |
改 | 更新键值 | 直接赋值 | d[k]=new_value | 用一个字典更新另一个字典 |
用一个字典更新另一个字典 | update | d.update(seq) | 键相同,则替换为seq中的对应键值 | |
查 | 成员资格检查 | in | k in d | 如果d中无键k,会引发错误 |
get |
d.get('name') d.get('name','查无此值‘) | 如果d中无键k,返回指定值;没有指定返回值时,则返回None | ||
查询所有键值对 | items | lst=d.items( ) | 返回一个字典项列表,属于字典视图,无序 | |
- | lst=list(d.items( )) | 将字典项复制到列表中 | ||
查询所有键 | keys | d.keys( ) | 返回一个由字典中的键组成的字典视图 | |
查询所有键值 | values | d.values() | 返回一个由字典中的值组成的字典视图 | |
复制 | 浅复制 | copy | d.copy( ) | 复制时键-值一起复制,指向的是值的原件而非副本;替换值不受影响;如果修改副本中的值,原件将会发生变化 |
深复制 | copy.deepcopy | dc=deepcopy(d) | 同时复制值及其包含的所有值 |
※字典视图:是底层字典的反映,不复制