字典格式如下所示:

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': '巫师'}