添加不同字典的键值并将其存储为另一个字典

Tas*_*man 1 python dictionary slice

我有类似的东西

stud_1 = {'stud_2' : 1, 'stud_3' : 3, 'stud_4' : 2,'stud_5' : 5,'stud_6' : 1,'stud_7' : 3,'stud_8' : 4,'stud_9' : 3}
stud_2 = {'stud_1' : 3, 'stud_3' : 2, 'stud_4' : 4,'stud_5' : 2,'stud_6' : 1,'stud_7' : 5,'stud_8' : 1,'stud_9' : 2}
stud_3 = {'stud_1' : 1, 'stud_2' : 5, 'stud_4' : 3,'stud_5' : 5,'stud_6' : 5,'stud_7' : 2,'stud_8' : 3,'stud_9' : 5}
stud_4 = {'stud_1' : 4, 'stud_2' : 3, 'stud_3' : 2,'stud_5' : 1,'stud_6' : 5,'stud_7' : 3,'stud_8' : 1,'stud_9' : 4}
.....
.....
Run Code Online (Sandbox Code Playgroud)

等等stud_9.这些值是每个学生收到的五分之一

我想互相添加键值并将其存储为另一个字典.就像stud_1stud_1自己以外的字典中添加key的值,然后将其存储在一个新的字典中,其中key为stud_1.

我怎么做?

编辑:

如果我在这里只考虑这4个词典,最后的词典应该是

final_dict = {'stud_1' : 9 , 'stud_2' : 9 , 'stud_3' : 7, 'stud_4' : 9 ....}  ## and so on according to the key value
Run Code Online (Sandbox Code Playgroud)

Ana*_*mar 5

您可以使用collections.Counter,然后将每个字典更新到该Counter.示例 -

from collections import Counter
s1c = Counter(stud_1)
s1c.update(stud_2)
s1c.update(stud_3)
.
.
.
Run Code Online (Sandbox Code Playgroud)

Counter是dict的子类,因此您以后可以将s1c用作简单字典.

更新计数器时,将从传入的字典/计数器添加值,而不是覆盖.

  • 是的有效.就像我说Counter是dict的子类,所以几乎你可以用dict做的一切,你可以用Counter做. (2认同)