一. 基本特性
dict 的基本特性:
- key-value 键值对的数据的集合
- 可变的、无序的、key不重复
1. 字典初始化(定义 dict)
定义一个字典有多种手段,如:
d = dict()
d = {}
d = {'a':10, 'b':'20', 'c':[1, 2, 3]}
d = dict(**kwargs) # 使用key=value键值对初始化一个字典 dict(name='tom', age=18)
dt = dict(iterable, **kwargs) # dict([('two', 2), ('one', 1), ('three', 3)])
dt = dict(mapping, **kwargs) # dict({'three': 3, 'two': 2, 'one': 1}, four=4, five=5)
注意:
- 字典中的 key 必须是可哈希的
- **kwargs : 形如定义形参 name=’name’,key不用加引号
- dict(iterable, **kwargs),iterable 是一个可迭代对象,其元素必须是一个二元结构
2. 字典元素的访问和修改
- d[key]
返回key对应的值value,key不存在就抛出keyerror异常
- d[key] = value
返回key对应的值修改为 value,key 不存在就添加新的 kv 对。
二. 字典相关的常用方法
了解一些字典的内置函数/方法。
1. 访问 dict 元素
- get(key)
说明:dict.get(key[, default]) -> {value}
- 返回 key 对应的值 value
- 如 key 不存在就返回缺省值 default,如未设 default 就返回 None
- setdefault(key)
说明:dict.setdefault(key[, default]) -> {value}
- 返回 key 对应的值 value
- 如 key 不存在就将 kv 对追加进 dict 里(value 为 default),并返回 defaul;如 default 未设,缺省为 None
2. 增加或修改 dict 元素
- update()
说明:dict.update([other_dict]) -> None
- 使用另一个字典的 kv 对更新本字典;
- key 不存在就添加,key 存在就覆盖原对应的value值;
- 就地修改,返回None
3. 删除 dict 元素
- pop()
说明:dict.pop(key[, default])
- 必须有 key 参数,字典中存在 key 就移除它,并返回它的value;
- key 不存在,返回给定的 default
- 如 default 未设置,而 key 又不存在则抛出异常
- popitem()
说明:dict.popitem() -> tuple(k, v)
- 移除并返回一个任意的键值对,一般移除最后一个 kv 对;
- 若 dict 为空,则抛出异常;
clear()
dict.clear()
清空字典。
del 语句
a = True
b = [6]
d = {'a': 1, 'b': b, 'c': [1,3,5]}
del a
del b
del d[c]
del 删除对象,如果是引用,则是减少了一个对象的引用。所以,del 实际上删除的是名称,而不是对象。
4. 遍历字典
for k in d
for k in dict_obj:
print(k) # 遍历key
print(dict_obj[k]) # 遍历 value
for k in d.keys()
for k in dict_obj.keys():
print(k) # 遍历key
print(dict_obj.get(k)) # 遍历 value
for item in d.items() ```python for item in dict_obj.items(): print(item) # item 是一个 (k, v) 二元组
for k, v in dict_obj.items(): print(k, v) ```
小结:
d.keys()、d.values()、d.items() 方法返回一个类似生成器的可迭代对象,不会把返回结果复制到内存中。