从 Python 中的字典中删除无值

在 Python 中从字典中删除 None 值

Remove None values from a Dictionary in Python

使用字典理解None从 Python 中的字典中删除值。dict comprehension 将传递字典中的每个键值对,我们可以在将None其包含在最终结果之前检查该值是否不存在。

主程序
my_dict = { 'name': 'Alice', 'age': None, 'country': None, 'language': 'German' } new_dict = { key: value for key, value in my_dict.items() if value is not None } # 👇️ {'name': 'Alice', 'language': 'German'} print(new_dict)

字典理解与列表理解非常相似。

它们对字典中的每一个键值对执行某种操作,或者选择满足条件的键值对的子集。

请注意,此方法不会None从字典中删除值,它会创建一个不包含任何None值的新字典。

另一种方法是使用for循环。

要从字典中删除 None 值:

  1. 使用for循环遍历字典的项目。
  2. 在每次迭代中,检查值是否为None
  3. 如果值为None,则删除相应的键。
主程序
my_dict = { 'name': 'Alice', 'age': None, 'country': None, 'language': 'German', } for key, value in my_dict.copy().items(): if value is None: del my_dict[key] # 👇️ {'name': 'Alice', 'language': 'German'} print(my_dict)

我们创建了字典的副本,因为不允许在迭代时更改字典的大小。

dict.items方法返回字典
项((键,值)对)的新视图。

主程序
my_dict = {'id': 1, 'name': 'Alice'} print(my_dict.items()) # 👉️ dict_items([('id', 1), ('name', 'Alice')])

在每次迭代中,我们检查值是否为None,如果是,我们删除相应的键。

这种方法改变了原始字典。

您还可以将 not-None 键值对添加到新字典中,而不是改变原始字典。

主程序
my_dict = { 'name': 'Alice', 'age': None, 'country': None, 'language': 'German' } new_dict = {} for key, value in my_dict.copy().items(): if value is not None: new_dict[key] = value # 👇️ {'name': 'Alice', 'language': 'German'} print(new_dict)

在每次迭代中,我们检查值是否不是None,如果不是,我们将键值对添加到新字典中。