[英]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.