如何比较键与值的等价性(代码第6行)
假设有一个变量叫做 mp_affiliation,它是一个字典,用来把议会成员的名字和他们所属的政党联系起来。还有一个变量叫做 party_size,它也是一个字典,用来把政党的名字和它们的成员数量对应起来。
party_size={}
for i in list(mp_affiliation.values):
party_size[i]=0
for k in mp_affiliation:
for i in party_size:
if mp_affiliation[k]==i
party_size[i]+=1
相关问题:
2 个回答
1
这件事不需要导入什么特别的东西,也不需要写方法。你只需要遍历一下所有的键和值。如果这个政党已经在字典里了,就把成员数量加1;如果还没有,就把它加进去,并把成员数量设为1。
party_size = {}
for (k, v) in mp_affiliation.items():
if v in party_size.keys():
party_size[v]+=1
else:
party_size[v] = 1
4
试试这个,用内置的 Counter 类会简单很多:
from collections import Counter
party_size = Counter(mp_affiliation.values())
现在,party_size 变量会包含一个字典,这个字典把政党和议会成员的数量对应起来。不过,如果你想手动做这个,长一点的做法是:
party_size = {}
for i in mp_affiliation.values():
party_size[i] = 0
for i in mp_affiliation.values():
party_size[i] += 1
或者用 defaultdict,可以稍微简短一点:
from collections import defaultdict
party_size = defaultdict(int)
for i in mp_affiliation.values():
party_size[i] += 1