Python 提取自定义值的字典项程序

Python 提取自定义值的字典项程序

自定义值是根据特定条件定义和选取的特定值。在一个庞大而复杂的数据集中,规范对于构建一个优化的程序非常重要,因此提取相关数据变得非常重要。我们可以根据参考列表来提取值。

这个参考列表有它自己的意义,因为它存储了简明的信息。在本文中,我们将讨论通过列表传递的自定义数据来提取字典项(键和值)的类似概念。

理解问题

我们将创建一个包含某些数据的字典。每个键将与不同的值相关联,然后我们将传递一个存储了多个值的参考列表。那些字典值等于参考值的字典项将被提取出来,即与列表值匹配的字典中的所有值应该与其对应的键一起被隔离。

输入输出场景

让我们考虑一个包含以下值的字典 –

Input:
dict1 = {"Grapes":12, "Mangoes":18, "Apples":10, "Strawberries":4, "Coconut":24}
lis1 = [13, 18, 4, 22]

我们可以看到,参考列表中的值“ 18 ”和“ 4 ”与字典键“ Mangoes ”和“ Strawberries ”的值相匹配。因此,应返回以下输出 –

Output: {'Mangoes': 18, 'Strawberries': 4}

现在我们已经理解了问题陈述,让我们讨论一些解决方案。

使用循环(迭代)

在创建字典之后,我们将使用 for循环 来迭代键和值。我们将创建一个空字典,只存储提取出来的字典项。

我们还将遍历参考列表,然后将每个列表值与不同的字典值进行匹配。我们将建立一个“ if ”条件来检查这些匹配的值,然后将它们存储到一个空字典中。

示例

以下是使用循环提取自定义值的字典项的示例:

dict1 = {"Grapes":12, "Mangoes":18, "Apples":10, "Strawberries":4, "Coconut":24}
lis1 = [13, 18, 4, 22]
dict2 = {}

print(f"The original dictionary is: {dict1}")
for keys, values in dict1.items():

   for x in lis1:
      if values == x:
         dict2[keys] = values

print(f"The new dictionary consisting of custom values: {dict2}")

输出

The original dictionary is: {'Grapes': 12, 'Mangoes': 18, 'Apples': 10, 'Strawberries': 4, 'Coconut': 24}
The new dictionary consisting of custom values: {'Mangoes': 18, 'Strawberries': 4}

使用字典推导

另一种高效和清晰的执行此程序的方式是使用字典推导。借助这种技术,我们可以产生一行代码,涵盖整个迭代概念。这种方法使我们能够编写简洁且易读的程序来提取字典项。

示例

以下是一个示例−

dict1 = {"Grapes":12, "Mangoes":18, "Apples":10, "Strawberries":4, "Coconut":24}
lis1 = [13, 18, 4, 22]

print(f"The original dictionary is: {dict1}")
dict2 = {keys: values for keys, values in dict1.items() if values in lis1}

print(f"The new dictionary consisting of custom values: {dict2}")

输出

The original dictionary is: {'Grapes': 12, 'Mangoes': 18, 'Apples': 10, 'Strawberries': 4, 'Coconut': 24}
The new dictionary consisting of custom values: {'Mangoes': 18, 'Strawberries': 4}

使用Lambda函数+ filter()函数

在这种方法中,我们将使用filter()函数来选择等于参考列表值的字典值。我们还将在filter()函数的第一个参数中传递一个 lambda函数

lambda函数将充当一个匿名过滤函数,确定是否将字典项添加到过滤后的字典中。我们将原始字典作为filter()函数的第二个参数传递。“ items[1] ”表示与每个键值对关联的值。

示例

以下是一个示例-

dict1 = {"Grapes":12, "Mangoes":18, "Apples":10, "Strawberries":4, "Coconut":24}
lis1 = [13, 18, 4, 22]

print(f"The original dictionary is: {dict1}")
dict2 = dict(filter(lambda items: items[1] in lis1, dict1.items()))

print(f"The new dictionary consisting of custom values: {dict2}")

输出

The original dictionary is: {'Grapes': 12, 'Mangoes': 18, 'Apples': 10, 'Strawberries': 4, 'Coconut': 24}
The new dictionary consisting of custom values: {'Mangoes': 18, 'Strawberries': 4}

其他解决方案和有价值的见解

有几种其他解决方案,包括使用“ map() ”函数与lambda和filter函数相结合。我们还可以将字典和列表的值转换为“集合”,然后检索共同的值。检索这些自定义值在数据可视化和数据集管理中起着重要作用。我们还可以通过创建一个通用程序来检索其他数据类型,该程序涵盖所有类型的值。

结论

在本文中,我们讨论了提取字典项的各种解决方案。首先,我们使用了一个简单的 迭代 方法来遍历字典和参考列表的值。在我们的第二种方法中,我们使用了 字典推导 的概念,对于最终的解决方案,我们使用了 filter()lambda 函数。最后,我们讨论了一些替代解决方案和与自定义值提取相关的有价值见解。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程