python字典获取_查

news/2024/10/2 16:17:17

在Python中,字典(dict)是一种用于存储键值对(key-value pairs)的内置数据结构。字典的键(key)必须是唯一的,而值(value)则可以是任何数据类型。使用字典时,经常需要获取(或查询)与特定键相关联的值。下面介绍几种获取字典中值的方法:

1. 直接通过键访问

如果你知道键的确切名称,可以直接使用键来获取对应的值。如果键存在于字典中,Python将返回其对应的值;如果键不存在,则会抛出一个KeyError异常。

my_dict = {"name": "John", "age": 30, "city": "New York"}# 获取键 'name' 的值
print(my_dict["name"])  # 输出: John
# 如果尝试访问不存在的键,将抛出 KeyError
# print(my_dict['country'])  # KeyError: 'country'

2. 使用get()方法

  • 为了避免KeyError,可以使用get()方法。
  • get()方法接受两个参数:要查询的键和可选的默认值(如果键不存在时返回)。
  • 如果键不存在,则返回默认值(默认为None)。
my_dict = {"name": "John", "age": 30, "city": "New York"}# 使用 get() 方法获取键 'name' 的值
print(my_dict.get("name"))  # 输出: John# 如果键不存在,则返回 'Not Found'
print(my_dict.get("country", "Not Found"))  # 输出: Not Found

3. 遍历字典

如果你想检查字典中的所有键值对,可以使用循环遍历字典。

my_dict = {"name": "John", "age": 30, "city": "New York"}# 遍历字典的键和值
for key, value in my_dict.items():print(f"{key}: {value}")# 只遍历键
for key in my_dict.keys():print(key)# 只遍历值
for value in my_dict.values():print(value)

4. 检查键是否存在

  • 在尝试访问字典中的值之前,你也可以先检查键是否存在。
  • 这可以通过in关键字完成。
my_dict = {"name": "John", "age": 30, "city": "New York"}# 检查键 'name' 是否存在
if "name" in my_dict:print(my_dict["name"])  # 输出: John
else:print("Key does not exist.")

以上是Python中获取字典中值(或进行查询)的几种常见方法。每种方法都有其适用场景,你可以根据具体需求选择最合适的方法。

5. 基于值获取键

  • 可以构建别名
def dict_find_key_from_value(dict_in, str_in):"""基于value查找字典的key"""for key, value_list in dict_in.items():if str_in in value_list:return key# 如果没有找到匹配的字符串,则返回None# 走到此处还没返回说明,没有return None
  • 示例:
# 构建别名系统的字典,值为列表  
alias_dict = {  'nick': ['Nicholas', 'Nickolas'],  'sarah': ['Sarah', 'Sara'],  'tommy': ['Thomas', 'Tommy'],  'lily': ['Lillian', 'Lily-Anne']  
}  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/67119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

模拟赛总结(二)

2024.8.1 T1 集合(mex.cpp) 枚举每个数,求他是\(mex\)的概率,就是取完比他小的,比他大的随便取的方案数比上总方案数 code T2 取模(mod.cpp) 有点套路 定义:\(odd\)为奇数,\(even\)为偶数,\(num_{odd}\)或者\(t\)为奇数个数 那个下取整可以变为: \[\begin{cases}& \…

重生之我要做商城 - 萌音商城V1.0上线

萌音系列的第N+1个项目来了呢. 这其实又是一个鸽了好几年的项目了,这回总算能把坑填上了. 先上项目地址: https://MoeKoe.cn 我为什么一直在做项目? 这个问题就很有意思了,为什么一直在做各种项目,而且还是不挣钱的东西. 接触过我之前一些项目的小伙伴都知道我开发什么项目都是…

【转戴】Redhat与Debian系介绍(Linux各种发行版本概述)

Linux,最早由Linus Benedict Torvalds在1991年开始编写。在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及GNU项目,并不断的编写创建GNU程序(此类程序的许可方式均为GPL: General Public License)。在不断的有杰出的程序员和开发者加入到GNU组织中…

吐槽随笔

2024/10/02 好不容易有时间打一次洛谷月赛,结果却让我输的这么彻底!

【动态Web API学习(三)】动态方法

1.应用程序模型 ASP.NET Core MVC根据控制器、操作、操作参数、路由和筛选器的结果,定义模型如下: ApplicationModel、控制器(ControllerModel)、操作(ActionModel)和参数(ParameterModel)。上一节中只是告诉系统封哪个是控制器,还要为控制器模型初始化值,比如路由、…

关于Arch Linux 安装及一些相关问题总结

关于个人Arch Linux 安装及相关问题总结 0. 其它记得在pacstrap前换国内的源 不会有人和我一样没换等半天还不成功吧 😦交换分区开大一点,照着Windows下开(看taskmgr里面的缓存空间),比如4G的RAM就要开10G的swap,swap越大越不容易卡死,安装时用swapon启用你刚建的swap…

深度学习(可视化卷积核)

可视化卷积核参数对理解卷积神经网络的工作原理、优化模型性能、提高模型泛化能力有一定帮助作用。 下面以resnet18为例,可视化了部分卷积核参数。import torchvision from matplotlib import pyplot as plt import torchmodel = torchvision.models.resnet18(pretrained=True…

《痞子衡嵌入式半月刊》 第 108 期

痞子衡嵌入式半月刊: 第 108 期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。 上期回顾 :《…