首页 > 数据库 > 数据库开发技术 > Python 的字典数据类型(2)
可以使用键来获取对应的值,例如:
my_dict = {'name': '张三', 'age': 18, 'gender': '男'}
# 获取 name 对应的值
print(my_dict['name'])
# 输出:张三
# 如果键不存在,则会报错
print(my_dict['phone'])
# 报错:KeyError: 'phone'
如果键不存在,可以使用 get() 方法来获取值,例如:
my_dict = {'name': '张三', 'age': 18, 'gender': '男'}
# 获取 name 对应的值
print(my_dict.get('name'))
# 输出:张三
# 如果键不存在,则会返回 None
print(my_dict.get('phone'))
# 输出:None
也可以为 get() 方法指定默认值,例如:
my_dict = {'name': '张三', 'age': 18, 'gender': '男'}
# 获取 phone 对应的值,如果不存在,则返回一个默认值
print(my_dict.get('phone', '暂无电话号码'))
# 输出:暂无电话号码
可以使用键来修改对应的值,例如:
my_dict = {'name': '张三', 'age': 18, 'gender': '男'}
# 修改 name 对应的值
my_dict['name'] = '李四'
# 输出修改后的字典
print(my_dict)
# 输出:{'name': '李四', 'age': 18, 'gender': '男'}
可以使用键来添加键值对,例如:
my_dict = {'name': '张三', 'age': 18, 'gender': '男'}
# 添加 phone 对应的值
my_dict['phone'] = '13888888888'
# 输出添加后的字典
print(my_dict)
# 输出:{'name': '张三', 'age': 18, 'gender': '男', 'phone': '13888888888'}
可以使用 del 关键字来删除键值对,例如:
my_dict = {'name': '张三', 'age': 18, 'gender': '男'}
# 删除 name 对应的键值对
del my_dict['name']
# 输出删除后的字典
print(my_dict)
# 输出:{'age': 18, 'gender': '男'}
可以使用 for 循环来遍历字典的键值对,例如:
my_dict = {'name': '张三', 'age': 18, 'gender': '男'}
# 遍历字典的键值对
for key, value in my_dict.items():
print(f'{key}: {value}')
输出结果为:
name: 张三
age: 18
gender: 男
和列表推导式类似,Python 也支持字典推导式,可以快速创建一个字典,例如:
# 创建一个字典,键为 0 到 9 的数字,值为对应数字的平方
my_dict = {x: x**2 for x in range(10)}
print(my_dict)
# 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
Python 字典也支持嵌套,即在字典中嵌套另一个字典,例如:
# 创建一个嵌套字典,存储多个学生的信息
students = {
'张三': {
'age': 18,
'gender': '男',
'score': {
'math': 80,
'english': 90,
'chinese': 85
}
},
'李四': {
'age': 20,
'gender': '女',
'score': {
'math': 90,
'english': 95,
'chinese': 92
}
}
}
# 输出学生的成绩
for name, info in students.items():
print(f'{name}的成绩:')
for subject, score in info['score'].items():
print(f'{subject}: {score}')
输出结果为:
张三的成绩:
math: 80
english: 90
chinese: 85
李四的成绩:
math: 90
english: 95
chinese: 92
clear() 方法用于删除字典中的所有元素,不接受任何参数。例如:
my_dict = {'a': 1, 'b': 2, 'c': 3}
my_dict.clear()
print(my_dict)
# 输出:{}
copy() 方法返回一个字典的浅拷贝,即复制字典中的键值对,但不复制键和值本身。例如:
my_dict = {'a': 1, 'b': 2, 'c': 3}
new_dict = my_dict.copy()
print(new_dict)
# 输出:{'a': 1, 'b': 2, 'c': 3}
fromkeys(seq, value=None) 方法用于创建一个新字典,以序列 seq 中的元素作为字典的键,值都设置为 value。例如:
keys = ['a', 'b', 'c']
my_dict = dict.fromkeys(keys, 0)
print(my_dict)
# 输出:{'a': 0, 'b': 0, 'c': 0}
items() 方法返回一个包含所有字典键值对的列表,每个键值对都表示为一个元组。例如:
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.items())
# 输出:dict_items([('a', 1), ('b', 2), ('c', 3)])
keys() 方法返回一个包含所有字典键的列表。例如:
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.keys())
# 输出:dict_keys(['a', 'b', 'c'])
pop(key, default=None) 方法弹出并返回指定键的值,如果键不存在,则返回默认值。例如:
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.pop('b')) # 输出:2
print(my_dict)
# 输出:{'a': 1, 'c': 3}
popitem() 方法弹出并返回字典中的最后一个键值对。例如:
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.popitem()) # 输出:('c', 3)
print(my_dict) # 输出:{'a': 1, 'b': 2}
setdefault(key, default=None) 方法返回指定键的值,如果键不存在,则设置一个默认值。例如:
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.setdefault('d', 0)) # 输出:0
print(my_dict)
# 输出:{'a': 1, 'b': 2, 'c': 3, 'd': 0}
update(dict2) 方法将字典 dict2 的键值对更新到当前字典中,如果键已经存在,则会覆盖原来的值。例如:
my_dict = {'a': 1, 'b': 2}
new_dict = {'b': 3, 'c': 4}
my_dict.update(new_dict)
print(my_dict)
# 输出:{'a': 1, 'b': 3, 'c': 4}
Python 字典提供了丰富的内置方法,可以方便地对字典进行操作,从而使我们编写的代码更加高效和简洁。
原文作者:HelloTech技术派;如有侵权,请联系管理员删除。