ITPub博客

首页 > 数据库 > 数据库开发技术 > Python 的字典数据类型(2)

Python 的字典数据类型(2)

原创 数据库开发技术 作者:HelloTech技术派 时间:2023-08-02 09:00:00 0 删除 编辑

字典的常用操作

获取字典的值

可以使用键来获取对应的值,例如:

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()

clear() 方法用于删除字典中的所有元素,不接受任何参数。例如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
my_dict.clear()
print(my_dict)  
# 输出:{}

copy()

copy() 方法返回一个字典的浅拷贝,即复制字典中的键值对,但不复制键和值本身。例如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
new_dict = my_dict.copy()
print(new_dict)  
# 输出:{'a': 1, 'b': 2, 'c': 3}

fromkeys()

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()

items() 方法返回一个包含所有字典键值对的列表,每个键值对都表示为一个元组。例如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.items())  
# 输出:dict_items([('a', 1), ('b', 2), ('c', 3)])

keys()

keys() 方法返回一个包含所有字典键的列表。例如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.keys())  
# 输出:dict_keys(['a', 'b', 'c'])

pop()

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()

popitem() 方法弹出并返回字典中的最后一个键值对。例如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.popitem())  # 输出:('c', 3)
print(my_dict)  # 输出:{'a': 1, 'b': 2}

setdefault()

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()

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技术派;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-12-05

  • 博文量
    181
  • 访问量
    73722