2

需要帮助制作函数 sumcounts(D) 其中 D 是一个以数字为值的字典,返回所有值的总和。示例输出应如下所示:

>>> sumcounts({"a":2.5, "b":7.5, "c":100})
110.0
>>> sumcounts({ })
0
>>> sumcounts(strcount("a a a b"))
4
4

3 回答 3

8

它已经在那里了:

sum(d.values())

或者也许是:

def sumcount(d):
    return sum(d.values())
于 2012-10-02T03:51:51.057 回答
3

我不确定您对字典的了解是什么,所以我假设最低限度。

  1. 创建一个total变量并将其设置为0.
  2. for x in y使用正常语法遍历字典中的所有键。
  3. 对于每个键,使用 . 从字典中获取其各自的值your_dict[key_name]
  4. 将该值添加到total.
  5. 在你的作业中获得 A。

Michael已经发布了常规的 Pythonic 解决方案。

于 2012-10-02T03:52:50.583 回答
1

上面迈克尔给出的答案是正确的!

我想建议,如果您要使用大型数据集来查看最优秀的Pandas Python 框架。(对于您的问题可能有点矫枉过正,但值得一看)

例如,它接受字典并将其转换为数据集

 yourdict = {"a":2.5, "b":7.5, "c":100}
 dataframe = pandas.Series(yourdict)

你现在有一个非常强大的数据框,你可以做很多简洁的事情,包括求和

sum = dateframe.sum()

您还可以轻松绘制它,将其保存到 excel、CSV、获取平均值、标准差等...

   dateframe.plot()      # plots is in matplotlib
   dateframe.mean()      # gets the mean
   dateframe.std()       # gets the standard deviation
   dataframe.to_csv('name.csv') # writes to csv file

我真的可以推荐熊猫。它改变了我使用 Python 进行数据业务的方式......顺便说一下,它与 R 数据框架相比很好。

于 2012-10-02T16:04:04.950 回答