【问题标题】:How to change the key and value of a dictionary如何更改字典的键和值
【发布时间】:2021-10-13 04:21:53
【问题描述】:

所以我得到了以下代码,我想做的是获取输入元组的每一秒值,并将其作为dict.key 保存到字典中,并将dict.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")}

【问题讨论】:

  • 顺便说一句,您不需要在 result 的定义行的末尾添加所有反斜杠。

标签: python dictionary for-loop tuples dictionary-comprehension


【解决方案1】:

只需使用+=添加号码:

for x in results:
    answer[x[1]] += 1
    
print(answer)

在做:

answer[x]

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

【讨论】:

    【解决方案2】:

    你也可以只使用collections.Counter:

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

    【讨论】:

      【解决方案3】:

      你可以使用计数器:

      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})
      

      【讨论】:

        猜你喜欢
        • 2021-11-01
        • 2023-01-27
        • 2019-10-16
        • 2021-02-01
        • 2021-04-14
        • 1970-01-01
        • 2021-07-29
        • 2022-08-03
        • 1970-01-01
        相关资源
        最近更新 更多