我有一本关于姓名和年龄的词典。有些名字是相同的。我想把相同名字的年龄加起来。你知道吗
我的假数据是这样的:
pete: 33
ann: 7
ruth: 3
ann: 5
austin: 90
示例中有两个ann。所以我想把这两个人的年龄加起来。 目前我有一本字典:
dict = {'pete':33,'ann':7,'ruth':3,'ann':5,'austin':90}
我的结果应该是这样的
dict = {'pete':33,'ann':12,'ruth':3,'austin':90}
pete: 33
ann: 12
ruth: 3
austin: 90
我认为像这样把数据放到字典里不是最好的解决办法。还有什么好的解决方案可以存储数据并将其处理到输出中?你知道吗
您需要使用元组列表,而不是使用字典
然后可以使用defaultdict计算总和:
defaultdict的工作原理是调用给定的函数(int)为不存在的任何键提供默认值(int()返回0);然后每次迭代都将数字加到该值上。你知道吗
因为dict不能包含重复的键,所以可以从元组列表开始。你知道吗
然后使用
defaultdict
构建dict
。诀窍是defaultdict(int)
创建一个dict,其条目默认为0,这样就不必处理不存在的键。你知道吗你的假数据不可能是那样的。在一个字典中不可能有两个具有相同键的条目,也许您的意思是使用不同的数据结构?(不是字典)。但如果你的数据是这样的:
那么a
defaultdict
是个好主意:或者使用
Counter
:还有一个解决方案,不需要导入额外的库:
相关问题 更多 >
编程相关推荐