当python字典键的值为lis时显示所有值

2024-10-05 12:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我严重卡住了,希望手电筒指向正确的方向。我有一个作为文本文件导入的列表。它有名字,每行都有编号。这些名字会重复1、2或3次。 目标是使输出为{Key:[,]…}。我只找到了其中一个值。你知道吗

dictionary = {}
with open('%Filename%') as f:
    for line in f:
        num, key = line.strip().split()
        dictionary[key] = [num]
print(dictionary)

我希望输出是{'USA': ['15','91','99']...} 相反,我得到的只是{'USA': ['99]...} 你知道吗


Tags: key目标列表dictionarywithline方向名字
3条回答
dictionary = {}
with open('%Filename%') as f:
    for line in f:
        num, key = line.strip().split()
        if not key in dictionary:
            dictionary[key] = []
        dictionary[key].append(num)
print(dictionary)

这很容易用dict.get解决:

dictionary = {}
with open('%Filename%') as f:
    for line in f:
        num, key = line.strip().split()
        dictionary[key] = dictionary.get(key, []) + [num]
print(dictionary)

使用collection.defaultdict

例如:

from collections import defaultdict

dictionary = defaultdict(list)
with open('%Filename%') as f:
    for line in f:
        num, key = line.strip().split()
        dictionary[key].append(num)
print(dictionary)

dict.setdefault

例如:

dictionary = {}
with open('%Filename%') as f:
    for line in f:
        num, key = line.strip().split()
        dictionary.setdefault(key, []).append(num)
print(dictionary)
  • 注意:您需要使用list.append将元素附加到列表中。你知道吗

相关问题 更多 >

    热门问题