如何比较键与值的等价性(代码第6行)

1 投票
2 回答
4096 浏览
提问于 2025-04-18 18:22

假设有一个变量叫做 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

撰写回答