簡體   English   中英

當python字典鍵的值是列表時顯示所有值

[英]Displaying all values when python dictionary key has a value that is a list

我被嚴重卡住了,不勝感激指向正確方向的手電筒。 我有一個要導入為文本文件的列表。 它有名稱,每一行都有編號。 名稱重復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]...}

使用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將元素追加到列表中。
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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM