Python程序查找字典键的总和


在这篇文章中,我们将学习一个Python程序来查找字典键的总和。

使用的方法

以下是完成此任务的各种方法 -

  • 使用for循环

  • 使用dict.keys()和sum()函数

  • 使用reduce()函数

  • 使用items()函数

示例

假设我们已经获取了一个包含一些随机键值对的**输入字典**。我们现在将使用上述方法查找输入字典中所有**键**的**总和**。

输入

inputDict = {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}

输出

Sum of keys of an input dictionary: 25

在上面的示例中,输入字典的键的总和为**4+1+10+2+8 = 25。**

方法1:使用For循环

算法(步骤)

以下是执行所需任务的算法/步骤 -。

  • 创建一个变量来存储输入字典。

  • 打印输入字典。

  • 初始化一个**keysSum**变量为0,用于存储输入字典键的总和。

  • 使用**for循环**遍历输入字典的键。

  • 使用+运算符将当前键添加到keysSum变量。

  • 打印输入字典键的总和。

示例

以下程序使用for循环返回输入字典中所有键的总和 -

# input dictionary
inputDict = {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}

# printing the input dictionary
print("Input Dictionary: ", inputDict)

# storing the sum of keys of the input dictionary
keysSum = 0

# traversing through the keys of an input dictionary
for k in inputDict:

   # adding the current key to keysSum variable
   keysSum += k

# printing the sum of keys of an input dictionary
print("Sum of keys of an input dictionary:", keysSum)

输出

执行后,上述程序将生成以下输出 -

Input Dictionary: {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}
Sum of keys of an input dictionary: 25

方法2:使用dict.keys()和sum()函数

**dict.keys()函数** - 提供一个视图对象,按插入顺序显示字典中所有键的列表

算法(步骤)

以下是执行所需任务的算法/步骤 -

  • 使用**dict.keys()**函数获取输入字典的键,并使用**list()**函数将其转换为列表(返回可迭代对象的列表)。

  • 使用**sum()**函数获取字典键的总和(返回可迭代对象中所有项目的总和)。

  • 打印输入字典中所有键的总和。

示例

以下程序使用dict.keys()和sum()函数返回输入字典中所有键的总和 -

# input dictionary
inputDict = {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}
print("Input Dictionary: ", inputDict)

# getting the keys of the input dictionary and converting them into the list

# and then getting the sum of dictionary keys
keysSum = sum(list(inputDict.keys()))
print("Sum of keys of an input dictionary:", keysSum)

输出

执行后,上述程序将生成以下输出 -

Input Dictionary: {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}
Sum of keys of an input dictionary: 25

方法3:使用reduce()函数

reduce()函数

在Python中,reduce()函数迭代列表或其他可迭代数据类型中的每个项目,返回单个值。它位于functools库中。这比循环更有效。

语法

reduce(function, iterable)

Lambda函数

Lambda函数,通常称为“**匿名函数**”,与普通Python函数相同,只是它可以**无需名称**地定义。**def**关键字用于定义普通函数,而**lambda**关键字用于定义匿名函数。但是,它们仅限于一行表达式。与常规函数一样,它们可以接受多个参数。

语法

lambda arguments: expression

算法(步骤)

以下是执行所需任务的算法/步骤 -

  • 使用import关键字从functools模块导入reduce函数。

  • 使用lambda函数添加连续的字典键,并减少大小以生成单个元素(所有键的总和)。

  • 打印输入字典中所有键的总和。

示例

以下程序使用reduce()函数返回输入字典中所有键的总和 -

# importing reduce function from functools module
from functools import reduce
inputDict = {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}
print("Input Dictionary: ", inputDict)

# Add the keys and reduce it to a single number(sum) using reduce() function
keysSum = reduce(lambda p, q: p + q, inputDict)
print("Sum of keys of an input dictionary:", keysSum)

输出

执行后,上述程序将生成以下输出 -

Input Dictionary: {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}
Sum of keys of an input dictionary: 25

方法4:使用items()函数

使用**dictionary.items()**函数使用for循环遍历字典中的元组。

**items()**函数返回一个视图对象,即它包含字典的键值对,作为列表中的元组。

示例

以下程序使用items()函数和for循环返回输入字典中所有键的总和 -

inputDict = {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}
print("Input Dictionary: ", inputDict)

# storing the sum of keys of the input dictionary
keysSum = 0

# traversing through the keys, and values of an input dictionary
for key, value in inputDict.items():
   
   # adding the current key to keysSum variable
   keysSum += key
print("Sum of keys of an input dictionary:", keysSum)

输出

执行后,上述程序将生成以下输出 -

Input Dictionary: {4: 10, 1: 30, 10: 50, 2: 70, 8: 90}
Sum of keys of an input dictionary: 25

结论

在本文中,我们学习了4种不同的计算字典键总和的方法。我们还学习了如何使用lambda函数和reduce向可迭代项目添加条件。

更新于: 2023年1月27日

3K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告