如何更改字典的键和值

How to change the key and value of a dictionary

所以我得到了以下代码,我想做的是获取输入元组的每个第二个值,并将其保存到字典中作为 dict.keydict.value 首先设置为 0。之后我想遍历保存的字典,每次元组中出现这个 dict.key 我想把它的计数放在 dict.value 中。该代码目前给我一个错误。

def movie_awards(results):
    """
    I want to ignore every first value of the tuple
    """
    results = list(results)
    
    answer = {x[1]:0 for x in results}
    
    for x in results:
        answer[x[1]] = answer[x] + 1
    
    print(answer)

result = {("Best Picture", "Parasite"),\
          ("Best Actor", "Joker"),\
          ("Best Actress", "Judy"),\
          ("Best Sound Editing", "Ford v Ferrari"),\
          ("Best Sound Editing", "1917"),\
          ("Best Original Score", "Joker"),\
          ("Best Costume Design", "Little Women"),\
          ("Best Visual Effects", "Little Women"),\
          ("Best Director", "Parasite")}

只需使用 +=:

添加号码
for x in results:
    answer[x[1]] += 1
    
print(answer)

正在做:

answer[x]

python 正在尝试获取键为 ('Best Original Score', 'Joker')key:value 对。由于它不存在,因此引发了一个关键错误。

您也可以只使用 collections.Counter:

from collections import Counter

def movie_awards(results):
    return Counter(x[1] for x in results)

您可以使用计数器:

from collections import Counter
c = Counter([t[1] for t in result])

>>> Counter({'Joker': 2, 'Parasite': 2, 'Little Women': 2, '1917': 1, 'Ford v Ferrari': 1, 'Judy': 1})