gpt4 book ai didi

Python 3.6 - 遍历字典然后生成元组以返回总和值

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:04 25 4
gpt4 key购买 nike

假设我有一本简单的字典,其中列出了我七年来每半年的支出。

d = {'year1':[1,2], 'year2':[3,4], 'year3':[5,6], 'year4':[7,8], 'year5':[9,10], 'year6':[11,12], 'year7':[13,14]}

我想通过遍历这本字典并打印最终的总和值来了解我在这七年中花了多少钱。虽然我已经能够遍历它得到一个包含年度总和的元组,但遍历这个相同的结果元组给我带来了令人困惑的值。

for key, value in d.items():
yearly_sums = key, sum(value)
print(yearly_sums)

Year1 3
Year2 7
Year3 11

到此为止,一切都很好。但是,例如,当我在此处打印每个 item 时,循环会打印“双重”值。

continued from above...
for item in yearly_sums:
print('Yearly sum is:', item)

我执行了上面的代码片段来测试打印结果,这样我就可以继续最后一步了,我得到的是:

Yearly sum is: Year1
Yearly sum is: 3

当我应该得到 Yearly sum is: 3 for year1 例如。现在剩下的最后一步是遍历这些 item 并打印出最终的总和值,但是我如何澄清 python items 仅包含数值而不是 year1 , year2?或者我在这里遗漏了什么?

最佳答案

您的代码中的问题是 yearly_sums 的定义(或使用取决于人们如何看待它)。

您将其定义为一个元组并对其进行循环:

yearly_sums = key, sum(value)

因此 for item in yearly_sums: 的第一次迭代为您提供了年份,结果打印了 Yearly sum is: Year1。第二个返回实际成本,您将获得所需的结果。


相反,您可以使用以下内容:

d = {'year1':[1,2], 'year2':[3,4], 'year3':[5,6], 'year4':[7,8], 'year5':[9,10], 'year6':[11,12], 'year7':[13,14]}

for year, costs in d.items():
print('Yearly sum for {} is: {}'.format(year, sum(costs)))

哪些产品:

Yearly sum for year1 is: 3
Yearly sum for year2 is: 7
Yearly sum for year3 is: 11
Yearly sum for year4 is: 15
Yearly sum for year5 is: 19
Yearly sum for year6 is: 23
Yearly sum for year7 is: 27

或者,尽可能保留您的代码:

for key, value in d.items():
yearly_sums = key, sum(value)
print('Yearly sum for {} is: {}'.format(*yearly_sums))

这当然会产生与上面相同的输出。

关于Python 3.6 - 遍历字典然后生成元组以返回总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47796263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com