[英]How to add certain values together in a dictionary in python
def statistics():
monthly_d = {}
with open("BLS_private.csv") as f:
reader = csv.reader(f)
for row in reader:
monthly_d[row[0]] = {"January":row[1],"Febuary":row[2],"March":row[3],"April":row[4],"May":row[5],"June":row[6],"July":row[7],"August":row[8],"September":row[9],"October":row[10],"November":row[11],"December":row[12]}
print(monthly_d)
return monthly_d
statistics()
这导致以下字典:
'2011': {'January': '108207', 'Febuary': '108464', 'March': '108725', 'April': '108989', 'May': '109097', 'June': '109199', 'July': '109374', 'August': '109426', 'September': '109642', 'October': '109781', 'November': '109959', 'December': '110193'}
我想做的是将所有统计信息合并到字典中,这样我就可以得到这样的输出:
'2011' : {'234099894'}
即只是字典中所有月份的总和。
只需在dict.values
上使用 sum 。 一个字典理解就可以了:
year_sums = {y: str(sum(map(int, m.values())))
for y, m in statistics().items()}
仅供参考的statistics
也可以简化为字典理解:
months = ['January', 'Febuary', 'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November', 'December']
def statistics():
with open("BLS_private.csv") as f:
reader = csv.reader(f)
return {row[0]: dict(zip(months, row[1:12])) for row in reader}
def statistics():
monthly_d = {}
with open("BLS_private.csv") as f:
reader = csv.reader(f)
for row in reader:
total = sum(int(v) for v in row[1:])
monthly_d[row[0]] = '{}'.format(total)
print(monthly_d)
return monthly_d
statistics()
这只是简单地总结了每一行中的所有元素。 然后它看起来像这样:
'2011' : '234099894'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.