将密钥对值添加到缺少的字典中

问题描述 投票:0回答:1

我一直在尝试将列表的键值添加到字典中,而键是X在列表中重复的次数,值是X本身。

my_list = [apple, cherry, apple, potato, tomato, apple]
my_grocery = {}
while True:
    try:
        prompt = input().upper().strip()
        my_list.append(prompt)
    except EOFError:
        my_list_unique = sorted(list(set(my_list)))
        for _ in my_list_unique:
            my_grocery[my_list.count(_)] = _
            #print(f'{my_list.count(_)} {_}')
        print(my_grocery)
        break

预期输出是:

{3: APPLE, 1 CHERRY, 1 POTATO, 1 TOMATO}

实际收到的输出是:

{3: 'APPLE', 1: 'TOMATO'}

有谁知道这是为什么吗

python loops error-handling output infinite-loop
1个回答
0
投票

你不能在字典中有重复的键,在你的情况下它是“1”,你可以使用 Counter 反之亦然每个产品类型的键值保存事件

from collections import Counter

my_list = []

while True:
    try:
        prompt = input().strip()
        if not prompt:
            break
        my_list.append(prompt)
    except EOFError:
        break

item_counts = Counter(my_list)

print(item_counts)

计数器({'番茄': 2, '苹果': 2, '芒果': 1})

© www.soinside.com 2019 - 2024. All rights reserved.