字典的正确用法
-
创建空字典
dict0 = {} -
创建非空字典
dict1 = {'name':'Jane', 'age':26, 'sex':'female'} -
新增键值对
dict1['address'] = '深圳市南山区义学街四坊' -
修改键值对
# 同一个键不允许出现两次,后一个值会被记住,覆盖前一个值 dict1['name'] = 'Smith' -
删除键'name'
del dict1['name'] -
清空字典
dict1.clear() -
删除字典
del dict1
字典错误使用方法
-
键使用列表, ['name']为列表,字典中不能使用列表作为键,可以使用“字符串、数字、元组”作为键
dict2 = {['name']:'Jane', 'age':26, 'sex':'female'}
字典内置函数及方法
-
len(dict)获取字典长度,一个键值对表示一个长度print(len(dict1)) # 打印结果:4 -
str(dict1)将字典转化为字符串表示print(str(dict1)) # 打印结果:{'name': 'Smith', 'age': 26, 'sex': 'female', 'address': '深圳市南山区义学街四坊'} -
type(dict)返回变量类型print(type(dict1)) # 打印结果:<class 'dict'> -
dict.copy()浅复制字典,开辟一块内存空间,将值拷贝进去,二者id地址不同dict1_copy = dict1.copy() print('id(d):', id(dict1_copy)) # 打印结果:2589300137088 print(id(dict1)) # 打印结果:2589300283904 -
dict.fromkeys(seq[, value])创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值。seq:字典键值列表(即指字典变量)
value:可选参数,设置键序列(seq)对应的值,默认为None。
返回一个新的字典
newDict = dict.fromkeys(dict1) # 打印结果:{'name': None, 'age': None, 'sex': None, 'address': None} dict.fromkeys(dict1, 10) # 打印结果:{'name': 10, 'age': 10, 'sex': 10, 'address': 10} -
dict1.get(key, default=None)返回指定的键值dict1.get('age') -
key in dict判断键在字典里则返回true,不在则返回falseif 'name' in dict1: print('yes') else: print('no') -
dict1.items()以列表返回一个视图对象dict2 = dict1.items() # 打印结果:dict_items([('name', 'Smith'), ('age', 26), ('sex', 'female'), ('address', '深圳市南山区义学街四坊')]) -
dict1.keys()返回键集合的视图对象dict3 = dict1.keys() # 打印结果:dict_keys(['name', 'age', 'sex', 'address']) -
d.update(d2)把字典d2的键/值对更新到d里d = {'Name': 'Runoob', 'Age': 7} d2 = {'Sex': 'female' } d.update(d2) # 打印结果:{'Name': 'Runoob', 'Age': 7, 'Sex': 'female'} -
dict1.values()返回字典所有值的集合列表DValue = dict1.values() # 打印结果:dict_values(['Smith', 26, 'female', '深圳市南山区义学街四坊']) -
pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key:要删除的值。default:如果没有key,返回default值
deleteKey = dict1.pop('name', 'not find') # 打印结果:Smith -
popitem()随机返回并删除字典中的最后一对键和值dleteLast = dict1.popitem() print(dleteLast) # 打印结果:('address', '深圳市南山区义学街四坊')