别再使用[]来获取字典的值了,来尝试一下这些方法

字典

在Python中,字典(Dictionary)是一种非常灵活的数据结构,用于存储键值对(key-value pairs)。每个键都是唯一的,并且与某个值相关联。字典是Python中处理映射关系(即一个键对应一个值)的内置类型。

字典的基本描述

字典在Python中通过花括号{}定义,键和值之间用冒号:分隔,键值对之间用逗号,分隔。例如:

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

直接通过键访问

最直接的方式是通过键直接访问对应的值。如果键存在,则返回对应的值;如果键不存在,则抛出KeyError。

有一个字典person_info,包含人的基本信息,如姓名、年龄和邮箱。我们想要获取这个人的姓名。

# 定义字典  
person_info = {'name': 'Tom', 'age': 30, 'email': 'tom@example.com'}  
  
# 通过键访问值  
name = person_info['name']  
print(f"Name: {name}")  # 输出: Name: Tom  
  
# 如果尝试访问不存在的键,会抛出KeyError  
# print(person_info['phone'])  # 这会抛出KeyError

使用get()方法

get()方法提供了一种更安全的访问字典值的方式。如果键存在,则返回对应的值;如果键不存在,则返回None(或者指定的默认值)。

同样使用person_info字典,但这次我们想安全地获取邮箱,如果邮箱不存在,则返回"Unknown"。

# 定义字典  
person_info = {'name': 'Tom', 'age': 30, 'email': 'tom@example.com'}  
  
# 使用get()方法访问值  
email = person_info.get('email', 'Unknown')  
print(f"Email: {email}")  # 输出: Email: tom@example.com  
  
# 尝试获取不存在的键,返回默认值  
phone = person_info.get('phone', 'Unknown')  
print(f"Phone: {phone}")  # 输出: Phone: Unknown

遍历字典

遍历字典可以访问所有的键值对。这可以通过for循环和items()、keys()、values()方法实现。

遍历person_info字典,打印出每个人的姓名和年龄。

# 定义字典  
person_info = {'name': 'Tom', 'age': 30, 'email': 'tom@example.com'}  
  
# 遍历字典的键值对  
for key, value in person_info.items():  
    if key in ['name', 'age']:  # 只打印姓名和年龄  
        print(f"{key}: {value}")  
# 输出:  
# name: Tom  
# age: 30

遍历字典的键

遍历person_info字典的键,并打印出每个键。

# 定义字典  
person_info = {'name': 'Tom', 'age': 30, 'email': 'tom@example.com'}  
  
# 遍历字典的键  
for key in person_info:  
    print(key)  
# 输出:  
# name  
# age  
# email

遍历字典的值

遍历person_info字典的值,并打印出每个值。

# 定义字典  
person_info = {'name': 'Tom', 'age': 30, 'email': 'tom@example.com'}  
  
# 遍历字典的值  
for value in person_info.values():  
    print(value)  
# 输出:  
# Tom  
# 30  
# tom@example.com

使用pop()方法

从person_info字典中移除age键值对,并获取其值。

# 定义字典  
person_info = {'name': 'Tom', 'age': 30, 'email': 'tom@example.com'}  
  
# 使用pop()方法移除并获取值  
age = person_info.pop('age')  
print(f"Age: {age}")  # 输出: Age: 30  
  
# 查看修改后的字典  
print(person_info)  # 输出: {'name': 'Tom', 'email': 'tom@example.com'}

使用popitem()方法

注意,popitem()方法会移除并返回一个任意键值对(在Python 3.7+中,由于字典是有序的,因此它通常返回最后插入的键值对)。

# 定义字典  
person_info = {'name': 'Tom', 'age': 30, 'email': 'tom@example.com'}  
  
# 使用popitem()方法移除并获取键值对  
key, value = person_info.popitem()  
print(f"Key: {key}, Value: {value}")  # 输出可能因字典内容不同而有所差异  
# 例如: Key: email, Value: tom@example.com  
  
# 查看修改后的字典  
print(person_info)  # 输出将不包含被移除的键值对

使用字典推导式

虽然字典推导式不直接用于获取值,但可以用来基于现有字典创建新字典。
创建一个新字典,其键为原字典值的长度,值为原字典的键

# 定义字典  
person_info = {'name': 'Tom', 'age': 30, 'email': 'tom@example.com'}  
  
# 使用字典推导式创建新字典  
new_dict = {len(str(value)): key for key, value in person_info.items()}  
  
# 注意:由于键冲突的可能性,这里的结果可能不是预期的  
# 打印新字典 
print(new_dict)  # 输出可能因字典内容不同而有所差异  
# 例如: {3: 'age', 4: 'name', 13: 'email'}(注意:实际输出可能不同,因为字典不保证顺序)

推荐阅读

Python基础

Python全网最全基础课程笔记(一)——基础入门
Python全网最全基础课程笔记(二)——变量
Python全网最全基础课程笔记(三)——所有运算符+运算符优先级
Python全网最全基础课程笔记(四)——基本数据类型
Python全网最全基础课程笔记(五)——选择结构+Python新特性Match
Python全网最全基础课程笔记(六)——循环结构
Python全网最全基础课程笔记(七)——列表,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(八)——字典,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(九)——集合,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十)——元组,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十一)——字符串所有操作,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十二)——函数,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十三)——作用域,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Flink入门到就业

2024年最新Flink教程,从基础到就业,大家一起学习–基础篇
2024年最新Flink教程,从基础到就业,大家一起学习–入门篇
2024年最新Flink教程,从基础到就业,大家一起学习–Flink集群部署
2024年最新Flink教程,从基础到就业,大家一起学习–flink部署和集群部署(从本地测试到公司生产环境如何部署项目源码)
2024年最新Flink教程,从基础到就业,大家一起学习–Flink运行架构底层源码详解+实战
2024年最新Flink教程,从基础到就业,大家一起学习–Flink DataStream API-第一篇+源码讲解
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长风清留扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值