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