Python程序用于移除字典中的空值


字典被称为集合数据类型。它们以键值对的形式存储数据。它们是有序且可更改的,即它们遵循特定的序列并被索引。我们可以更改键的值,因此它是可操作或可更改的。字典不支持数据重复。每个键可以有多个值与之关联,但单个值不能有多个键。我们可以使用字典执行许多操作。整个机制取决于存储的值。

在本文中,我们将讨论可用于从字典中移除“空值”的技术。在我们开始主要操作之前,我们必须对字典中的值处理有一个牢固的理解。让我们快速浏览一下本文的概述。

本文分为两个部分:

  • 第一部分将重点介绍“空值”的概念及其意义。

  • 在第二部分中,我们将讨论使用Python代码可以移除这些空值的各种方法。

字典值的概念

字典作为一种集合数据类型,以值的形式存储数据。这些值可以是任何数据类型,但应与不可变的键对象关联。让我们看看不同类型值的语法:

dict1 = {"key1": "value1", "key2": "value2"}

这里,每个键只有一个值,但我们可以为一个键分配多个值:

dict1 = {"key1": ("art", 3, 4.5), "key2": ("logic", 7, 5.5)}

正如我们所看到的,值可以是任何数据类型。既然我们已经理解了字典中值的的概念,让我们理解空值的逻辑。

空值的 概念

空值不是Python的原始概念,它用于Java或C等语言。尽管Python中的空值大相径庭。在Python中,空值由“None”关键字表示。在其他语言中,空值充当指针或参考点,但在Python中它要大得多。

“None”关键字在Python中充当一等公民。它不仅限于零值变量,其作用还扩展到函数操作。每当函数不包含“return语句”时,都会返回None值。

在Python中使用“None”值有很多优点:

  • 我们可以使用None作为默认参数来多次调用函数。

  • 我们也可以将其用作空值。

  • 用于声明空变量。

  • 解码跟踪错误中空值的影响。

  • 我们可以使用None为函数生成空对象。

这些是Python中“None”关键字的优点。有时需要移除此类值,这就是我们将讨论拾取和丢弃None值的不同方法的原因。

以下是从字典中移除空值的方法:

使用蛮力法

在这种方法中,我们将检查字典中的所有值并拾取具有“空值”的值。让我们看看它的实现:

示例

在下面的程序中:

  • 我们创建了一个包含输入数据的字典。

  • 我们创建了一个空字典来存储非“None”的值。

  • 我们遍历字典并建立了一个过滤空值的条件。最后,我们打印新的字典。

dict1 = {"key1": 2, "key2": None, "key3": 5, "key4": "abc"}
dictrem = {}
for keys, values in dict1.items():
   if values is not None:
      dictrem[keys] = values
print(dictrem)

输出

{'key1': 2, 'key3': 5, 'key4': 'abc'} 

使用字典推导式

这是一种更好、更优化的丢弃空值的方法。我们将巧妙地传递单行命令来过滤这些值。让我们看看实现:

示例

以下示例有助于我们凭经验理解上述概念。

dict1 = {"key1": 2, "key2": None, "key3": 5, "key4": "abc"}
dictrem = {keys:values for keys, values in dict1.items() if values is not None}
print(dictrem)

输出

{'key1': 2, 'key3': 5, 'key4': 'abc'} 

示例

dict1 = {"key1": 2, "key2": None, "key3": 5, "key4": "abc", "key5": 0}
dictrem = {keys:values for keys, values in dict1.items() if values is not None and values != 0}
print(dictrem)

输出

{'key1': 2, 'key3': 5, 'key4': 'abc'}

这些是从字典中移除空值的基本方法。编码人员需要分离值,这在输入数据量很大的情况下非常有用。第二种方法是处理空值更好的方法。

结论

在本文中,我们讨论了字典的基本概念以及键和值的意思。我们了解了空值在Python中的重要性和意义。最后,我们讨论了从字典中移除空值的各种方法。

更新于:2023年4月24日

2K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.