常用方法对照表
方法或操作 | 功能描述 |
---|---|
dicts .keys() | 返回所有的键信息 |
dicts . values() | 返回所有的值信息 |
dicts . items() | 返回所有的键值对 |
dicts . get (key , defualt ) | 键存在则返回相应值,否则返回默认值 |
dicts . pop (key , default ) | 键存在则返回相应值,同时删除键值对,否则返回默认值 |
dicts . popitem() | 随机从字典中取出一个键值对,以元组( key , value )的形式返回 |
dicts . clear () | 删除所有的键值对 |
del dicts [ key ] | 删除字典中的某个键值对 |
key in dicts | 如果键在字典中则返回 True ,否则返回 False |
dicts . copy() | 复制字典 |
dicts . update (dicts2) | 更新字典,参数dict2为更新的字典 |
1. keys ()、values ()和 items ()方法
- 通过 keys ()、values()和 items ()这3个方法可以分别返回字典的键的视图、值的视图和键值对的视图。
- 视图对象与列表不同,它不支持索引,但可以迭代访问,通过遍历视图可以获得学典的信息。
例 5-10 字典的常用方法 keys ()、values ()和 items ()
>>> dicts = {"id":101,"name":"Rose","address":"Changjianroad","pcode":"116022"}
#获得键的视图
>>> key1 = dicts.keys()
>>> type(key1)
<class 'dict_keys'>
>>> key1 = dicts.keys()
>>> for k in key1:
print(k,end=",")
id,name,address,pcode,
#获得值的视图
>>> values1 = dicts.values()
>>> type(values1)
<class 'dict_values'>
>>> for v in values1:
print(v,end=",")
101,Rose,Changjianroad,116022,
#获得键值对的视图
>>> items = dicts.items()
>>> type(items)
<class 'dict_items'>
>>> for item in items:
print(item,end=",")
('id', 101),('name', 'Rose'),('address', 'Changjianroad'),('pcode', '116022'),
2. get()、 pop ()、popitem () 方法
- 通过 get()方法可以返回键对应的值。如果 key 不存在,返回空值。 default 参数可以指定键不存在时的返回值。
- 通过 pop()方法可以从字典中删除键,并返回对应的值。如果 key 不存在,返回 default 值,如果未指定 default 参数,则代码运行时会产生异常。
- 通过 popitem ()方法可以从字典中删除并返回键值对。字典为空时,会产生 keyerror 异常。
例 5-11 字典的常用方法 get()、 pop()、poptitem()
dicts = {"id":101,"name":"Rose","address":"Changjianroad"}
#get()方法
>>> dicts.get("address")
'Changjianroad'
>>> dicts.get("pcode")
>>> dicts.get("pcode","116000") #pcode在字典中不存在,返回默认值
'116000'
>>> dicts
{'id': 101, 'name': 'Rose', 'address': 'Changjianroad'}
#pop方法
>>> dicts.pop('name')
'Rose'
>>> dicts
{'id': 101, 'address': 'Changjianroad'}
>>> dicts.pop("email","ul@u2") #在字典中不存在,返回默认值
'ul@u2'
>>> dicts
{'id': 101, 'address': 'Changjianroad'}
>>> dicts = {"id":101,"name":"Rose","address":"Changjianroad"}
#使用 popitem() 函数逐一删除键值对
>>> dicts.popitem()
('address', 'Changjianroad')
>>> dicts.popitem()
('name', 'Rose')
>>> dicts.popitem()
('id', 101)
>>> dicts
{}
3. copy()和 update ()方法
- 通过 copy()方法可以返回一个字典的复本,但新生的字典与原字典的 id 是不同的,用户修改一个字典对象时,不会对另一个字典对象产生影响。
- 通过 update()方法可以使用一个字典更新另一个字典,如果两个字典有相同的键存在,则键值对会进行覆盖。
例 5-12 字典的常用方法 copy()与 update()应用实例
>>> dicts = {"id":101,"name":"Rose","address":"Changjianroad"}
#copy()方法
>>> dict2 = dict1.copy()
>>> id(dict1),id(dict2)
(2244937983320, 2244936532544)
>>> dict1 is dict2
False
>>> dict2["id"] = 102
>>> dict2
{'id': 102, 'name': 'Rose', 'address': 'Changjianroad'}
>>> dict1
{'id': 101, 'name': 'Rose', 'address': 'Changjianroad'}
#update()方法
>>> dict3 = {"name":"John","email":"u1@u2"}
>>> dict1.update(dict3)
>>> dict1
{'id': 101, 'name': 'John', 'address': 'Changjianroad', 'email': 'u1@u2'}