dir(dict)
来查看该类型包含哪些方法,例如:
>>> dir(dict)
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
scores = {'数学': 95, '语文': 89, '英语': 90} print(scores.keys()) print(scores.values()) print(scores.items())运行结果:
dict_keys(['数学', '语文', '英语'])
dict_values([95, 89, 90])
dict_items([('数学', 95), ('语文', 89), ('英语', 90)])
a = {'数学': 95, '语文': 89, '英语': 90} b = list(a.keys()) print(b)运行结果为:
['数学', '语文', '英语']
a = {'数学': 95, '语文': 89, '英语': 90} for k in a.keys(): print(k,end=' ') print("\n---------------") for v in a.values(): print(v,end=' ') print("\n---------------") for k,v in a.items(): print("key:",k," value:",v)运行结果为:
数学 语文 英语
---------------
95 89 90
---------------
key: 数学 value: 95
key: 语文 value: 89
key: 英语 value: 90
a = {'one': 1, 'two': 2, 'three': [1,2,3]} b = a.copy() print(b)运行结果为:
{'one': 1, 'two': 2, 'three': [1, 2, 3]}
可以看到,copy() 方法将字典 a 的数据全部拷贝给了字典 b。a = {'one': 1, 'two': 2, 'three': [1,2,3]} b = a.copy() #向 a 中添加新键值对,由于b已经提前将 a 所有键值对都深拷贝过来,因此 a 添加新键值对,不会影响 b。 a['four']=100 print(a) print(b) #由于 b 和 a 共享[1,2,3](浅拷贝),因此移除 a 中列表中的元素,也会影响 b。 a['three'].remove(1) print(a) print(b)运行结果为:
{'one': 1, 'two': 2, 'three': [1, 2, 3], 'four': 100}
{'one': 1, 'two': 2, 'three': [1, 2, 3]}
{'one': 1, 'two': 2, 'three': [2, 3], 'four': 100}
{'one': 1, 'two': 2, 'three': [2, 3]}
a = {'one': 1, 'two': 2, 'three': 3} a.update({'one':4.5, 'four': 9.3}) print(a)运行结果为:
{'one': 4.5, 'two': 2, 'three': 3, 'four': 9.3}
从运行结果可以看出,由于被更新的字典中已包含 key 为“one”的键值对,因此更新时该键值对的 value 将被改写;而被更新的字典中不包含 key 为“four”的键值对,所以更新时会为原字典增加一个新的键值对。
dictname.pop(key)
dictname.popitem()
a = {'数学': 95, '语文': 89, '英语': 90, '化学': 83, '生物': 98, '物理': 89} print(a) a.pop('化学') print(a) a.popitem() print(a)运行结果:
{'数学': 95, '语文': 89, '英语': 90, '化学': 83, '生物': 98, '物理': 89}
{'数学': 95, '语文': 89, '英语': 90, '生物': 98, '物理': 89}
{'数学': 95, '语文': 89, '英语': 90, '生物': 98}
dictname.setdefault(key, defaultvalue)
说明,dictname 表示字典名称,key 表示键,defaultvalue 表示默认值(可以不写,不写的话是 None)。a = {'数学': 95, '语文': 89, '英语': 90} print(a) #key不存在,指定默认值 a.setdefault('物理', 94) print(a) #key不存在,不指定默认值 a.setdefault('化学') print(a) #key存在,指定默认值 a.setdefault('数学', 100) print(a)运行结果为:
{'数学': 95, '语文': 89, '英语': 90}
{'数学': 95, '语文': 89, '英语': 90, '物理': 94}
{'数学': 95, '语文': 89, '英语': 90, '物理': 94, '化学': None}
{'数学': 95, '语文': 89, '英语': 90, '物理': 94, '化学': None}
本文链接:http://task.lmcjl.com/news/9279.html