Python 选择键求和

2024 年 8 月 29 日 | 阅读 3 分钟

在使用 Python 字典时,我们可能会遇到需要从字典中获取选择性键值的和的问题。这个问题可能出现在 Web 开发领域,下面让我们看看解决该问题的几种方法。

方法 - 1:使用列表推导式 + get() + sum()

在此方法中,我们使用 **get()** 方法访问值,并通过列表推导式遍历字典。我们使用 **sum()** 进行求和。让我们通过以下示例来理解。

示例 -

输出

The original dictionary : {'javatpoint': 1, 'is': 2, 'best': 3, 'for': 4, 'Learning': 5}
9
The summation of Selective keys : 9

方法 - 2:使用 itemgetter() + sum()

此函数专门用于通过一系列键作为输入来检索字典中的值。调用该函数后,它会以元组的形式返回相应的值,然后可以使用 sum() 等内置函数对其进行进一步处理(例如求和)。让我们通过以下示例来理解。

示例 -

输出

The original dictionary : {'javatpoint': 5, 'is': 12, 'best': 30, 'for': 24, 'Learning': 15}
The summation of Selective keys : 50

时间复杂度 - 如果有 N 个键,则时间复杂度为 O(N)。

辅助空间: O(1),因为空间复杂度与输入的大小无关,是恒定的。

方法 - 3:使用 for 循环

让我们理解下面的例子。

示例 -

输出

The original dictionary : {'javatpoint': 11, 'is': 20, 'best': 13, 'for': 40, 'Learning': 50}
The summation of Selective keys : 74

时间复杂度 - 该算法的时间复杂度为 0(N)。

辅助空间 - 该算法的辅助空间复杂度为 O(k),其中 k 是 key_list 中的键数。

方法 - 6:使用递归方法

下面的函数接受一个字典 d 和一个键列表,并返回键列表中键对应的值的和。

如果键列表的长度为 1,代码将检索字典中与该键关联的值并返回。否则,代码将检索列表中第一个键关联的值,并递归地使用剩余的键和相应的嵌套字典调用自身以获得最终值。

此递归过程将持续进行,直到键列表的长度减少到 1,此时将返回最终值。根据字典的结构和所用键的性质,这是一种从字典中检索嵌套值的有效方法。

示例 -

输出

The summation of Selective keys: 94

时间复杂度 - 该算法的时间复杂度为 0(N)。