字典格式如下所示:
dict = {key1 : value1, key2 : value2, key3 : value3 }
- 注:键必须是唯一的
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
# 键值对
print(dict1.keys()) # 键
print(dict1.values()) # 值
输出结果:
dict_keys(['name', 'age', 'sex', 'height'])
dict_values(['Sophia', 16, '女', 175])
增元素:
1、直接赋值添加。
# 若新增的key不在字典中,插入key及对应的value
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
dict1['status'] = '巫师'
print('dict1:', dict1)
# 若新增的key在字典中,新增的value覆盖字典中key对应的value--同理可用于改元素
dict2 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
dict2['sex'] = '男'
print('dict2:', dict2)
输出结果:
dict1: {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175, 'status': '巫师'}
dict2: {'name': 'Sophia', 'age': 16, 'sex': '男', 'height': 175}
2、利用dict.setdefault()方法。
dict.setdefault(key, default=None):
- key -- 查找的键值。
- default -- 键不存在时,设置的默认键值。
- 如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
dict.setdefault(key, default=None):同样可用于查元素,这里先描述如何增元素。
# 若新增的key在字典中,字典不发生变化;若新增的key不在字典中,插入key及对应的value
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
dict1.setdefault('age', '20')
dict1.setdefault('status', '巫师')
print('dict1:', dict1)
输出结果:
dict1: {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175, 'status': '巫师'}
3、利用dict.update(dict2)方法,将dict2中的key/value(键/值)对更新到字典 dict 里。
# 若新增的key不在字典中,插入key及对应的value
# 若新增的key在字典中,新增的value覆盖字典中key对应的value--同理可用于改元素
dict1 = {'a1': 'a11'}
dict2 = {'a1': 'a111', 'a2': 'a22'}
dict1.update(dict2)
print('dict1:', dict1)
输出结果:
dict1: {'a1': 'a111', 'a2': 'a22'}
删元素
1、删除指定元素。
# 如果该元素不存在,报错
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175, 'status': '巫师'}
dict1.pop('status')
print('dict1:', dict1)
输出结果:
dict1: {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
2、删除最后一个元素。
dict.popitem():
- 返回字典中最后一个键值对(key,value)形式,同时删除字典中最后的一对键值对。
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175, 'status': '巫师'}
object = dict1.popitem()
print('object:',boject)
print('dict1:', dict1)
输出结果:
object:('status', '巫师')
dict1: {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
3、删除字典内所有元素。
dict.clear():用于删除字典内所有元素。
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175, 'status': '巫师'}
dict1.clear()
print('dict1:', dict1)
输出结果:
dict1: {}
改元素
同增元素中的方法1、方法3类似,直接赋值覆盖原来的值或通过update覆盖原来的值。
查元素
1、直接查询 --如果该元素不存在,报错。
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
# --如果该元素不存在,报错
print('元素存在时:', dict1['name'])
print('元素不存在时:', dict1['status'])
输出结果:
元素存在时: Sophia
print('元素不存在时:', dict1['status']) KeyError: 'status'
2、利用dict.get()方法查询 --即使该元素不存在,也不报错。
dict.get(key, default=None):
- key -- 字典中要查找的键。
- default -- 如果指定的键不存在时,返回该默认值。
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
# --即使该元素不存在,也不报错
print('name:', dict1.get('name', '元素不存在'))
print('status:', dict1.get('status', '元素不存在'))
输出结果:
name: Sophia
status: 元素不存在
2、利用dict.setdefault()方法查询 --即使该元素不存在,也不报错。
dict.setdefault(key, default=None):
- key -- 查找的键值。
- default -- 键不存在时,设置的默认键值。
- 如果 key 在 字典中,返回对应的值。
- 如果不在字典中,返回 默认值None。并且插入 key 及设置的默认值 。
dict1 = {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175}
print('name:', dict1.setdefault('name', '巫师'))
print('status:', dict1.setdefault('status', '巫师'))
print('dict1:', dict1) # 此时 'status'/None 键值已添加
输出结果:
name: Sophia
status: 巫师
dict1: {'name': 'Sophia', 'age': 16, 'sex': '女', 'height': 175, 'status': '巫师'}