Python 中如果键不存在,则将键添加到字典
如果字典不存在,则将键添加到字典中:
-
使用
not in
运算符检查键是否不在字典中。 - 如果满足条件,则使用括号表示法添加密钥。
- 仅当键不存在时才会添加新的键值对。
my_dict = {
'site': 'jiyik.com'
}
key = 'topic'
if key not in my_dict:
my_dict[key] = 'Python'
# 👇️ {'site': 'jiyik.com', 'topic': 'Python'}
print(my_dict)
我们使用 not in
运算符来检查字典中是否不存在键。
与字典一起使用时,in
运算符会检查字典对象中是否存在指定键。
my_dict = {
'site': 'jiyik.com'
}
print('site' in my_dict) # 👉️ True
print('topic' in my_dict) # 👉️ False
print('site' not in my_dict) # 👉️ False
print('topic' not in my_dict) # 👉️ True
x not in s
返回x in s
的否定。
如果键不在字典中,我们使用括号表示法来添加它。
或者,我们可以使用 dict.get()
方法。
如果字典不存在则使用 dict.get() 添加键到字典
如果字典不存在,则将键添加到字典中:
-
使用
dict.get()
方法获取给定键的值。 - 如果键不在字典中,则设置要返回的默认值。
- 将结果分配给字典中的键。
my_dict = {
'site': 'jiyik.com'
}
key = 'topic'
my_dict[key] = my_dict.get(key, 'Python')
print(my_dict) # 👉️ {'site': 'jiyik.com', 'topic': 'Python'}
key = 'site'
my_dict[key] = my_dict.get(key, 'google.com')
print(my_dict) # 👉️ {'site': 'jiyik.com', 'topic': 'Python'}
如果键在字典中,则 dict.get
方法返回给定键的值,否则返回默认值。
my_dict = {
'site': 'jiyik.com'
}
# 👇️ jiyik.com
print(my_dict.get('site', 'default value'))
# 👇️ default value
print(my_dict.get('another', 'default value'))
该方法采用以下 2 个参数:
- key 要为其返回值的键
- default 如果字典中不存在提供的键,则返回默认值(可选)
如果未提供默认参数的值,则默认为 None,因此 get()
方法永远不会引发 KeyError
。
在语句中,我们使用 dict.get()
方法获取给定键的值。
如果键存在于字典中,则返回其值。如果密钥不存在,它将被设置为提供的默认值。
my_dict = {
'site': 'jiyik.com'
}
key = 'topic'
my_dict[key] = my_dict.get(key, 'Python')
print(my_dict) # 👉️ {'site': 'jiyik.com', 'topic': 'Python'}
然而,这种方法比使用带有成员测试的 if 语句更含蓄和更间接。
或者,我们可以使用 dict.setdefault()
方法。
如果字典不存在,则使用 setdefault() 将键添加到字典中
如果字典不存在,则将键添加到字典中:
-
使用
dict.setdefault()
方法为键设置默认值。 - 如果该键不存在,则会添加指定的值。
- 如果密钥存在,则它保持不变。
my_dict = {
'site': 'jiyik.com'
}
my_dict.setdefault('site', 'google.com')
print(my_dict) # 👉️ {'site': 'jiyik.com'}
my_dict.setdefault('topic', 'Python')
print(my_dict) # 👉️ {'site': 'jiyik.com', 'topic': 'Python'}
setdefault
方法接受一个键和一个默认值作为参数。
如果键在字典中,则该方法返回其值。
如果该键不在字典中,该方法将插入具有指定值的键。
如果我们不指定默认值,则使用 None。
指定的键只有在不存在的情况下才会被添加到字典中。
我们可能还会在网上看到使用字典合并运算符或将键值对解包到新字典中的示例。
my_dict = {
'site': 'jiyik.com'
}
new_dict = my_dict | {'topic': 'Python', 'site': 'google.com'}
print(new_dict) # 👉️ {'site': 'google.com', 'topic': 'Python'}
# -----------------------------------------------------------
new_dict = {'topic': 'Python', 'site': 'google.com'} | my_dict
print(new_dict) # 👉️ {'topic': 'Python', 'site': 'jiyik.com'}
合并 |
运算符用于合并两个字典,右边的字典优先。
第一个示例显示了在合并两个词典时如何覆盖现有词典中的站点键。
我们可以切换顺序并将现有词典放在右侧,因此它具有优先权,但这很难阅读且不直观。
使用字典解包 (**
) 语法可以实现相同的目的。
my_dict = {
'site': 'jiyik.com'
}
new_dict = {**my_dict, **{'topic': 'Python', 'site': 'google.com'}}
print(new_dict) # 👉️ {'site': 'google.com', 'topic': 'Python'}
new_dict = {**{'topic': 'Python', 'site': 'google.com'}, **my_dict}
print(new_dict) # 👉️ {'topic': 'Python', 'site': 'jiyik.com'}
我们使用字典解包
**
运算符将两个字典的键值对解包为第三个。
第二个字典的键值对覆盖第一个字典的键值对。
我们选择哪种方法是个人喜好的问题。 我会使用一个简单的 if
语句来检查键是否不在字典中。
我发现 if
语句方法是最直接和直观的。
相关文章
Python for 循环中的下一项
发布时间:2023/04/26 浏览次数:179 分类:Python
-
本文讨论了 Python 中的 for 循环以及如何通过使用 for 循环和示例来跳过列表的第一个元素。
Python While 循环用户输入
发布时间:2023/04/26 浏览次数:148 分类:Python
-
我们可以在 while 循环中使用 input() 函数来输入数据,直到在 Python 中满足某个条件。
在 Python 中将整数转换为罗马数字
发布时间:2023/04/26 浏览次数:87 分类:Python
-
本篇文章将介绍在 Python 中将整数转换为罗马数字。以下是一个 Python 程序的实现,它将给定的整数转换为其等效的罗马数字。
在 Python 中将罗马数字转换为整数
发布时间:2023/04/26 浏览次数:144 分类:Python
-
本文讨论如何在 Python 中将罗马数字转换为整数。 我们将使用 Python if 语句来执行此操作。 我们还将探讨在 Python 中将罗马数字更改为整数的更多方法。
在 Python 中读取 gzip 文件
发布时间:2023/04/26 浏览次数:70 分类:Python
-
本篇文章强调了压缩文件的重要性,并演示了如何在 Python 中使用 gzip 进行压缩和解压缩。
在 Python 中锁定文件
发布时间:2023/04/26 浏览次数:141 分类:Python
-
本文解释了为什么在 Python 中锁定文件很重要。 这讨论了当两个进程在没有锁的情况下与共享资源交互时会发生什么的示例,为什么在放置锁之前知道文件状态很重要,等等
在 Python 中将 PDF 转换为文本
发布时间:2023/04/26 浏览次数:196 分类:Python
-
在本教程中,我们将学习如何使用 Python 使用 PyPDF2、Aspose 和 PDFminer 将 PDF 文档转换为文本文件。
在 Python 中创建临时文件
发布时间:2023/04/26 浏览次数:53 分类:Python
-
本文讲解了tempfile库函数的四个子函数:TemporaryFile、NamedTemporaryFile、mkstemp、TemporaryDirectory。 每个部分都提供了适当的程序,以简化对概念的理解。