fruits.txt包含
avocado, green
apple, yellow
pear, green
apple, green
我试图打印从文件创建的字典。我尝试检查密钥是否已经在字典中,如果没有创建新密钥。
打印应该看起来像这样
green
avocado
pear
apple
yellow
apple
到目前为止我的代码:
d = {}
file = open("fruits.txt","r")
for line in file:
(key,val) = line.split()
if val in d.values():
d[val].append(key)
else:
d[val]=key
print(d)
但这只打印出来
{'yellow': 'apple,', 'green': 'apple,'}
任何关于这个问题在哪里出错的想法? 谢谢!
答案 0 :(得分:1)
defaultdict
处理文件时始终使用with
语句
from collections import defaultdict
d = defaultdict(list)
with open("fruits.txt","r") as inFile:
for line in inFile:
k, v = line.rstrip().split()
d[v].append(k)
如果您不想使用defaultdict
,可以使用dict
本身,就像这样
d = {}
with open("fruits.txt","r") as inFile:
for line in inFile:
k, v = line.rstrip().split()
d.setdefault(v, []).append(k)
答案 1 :(得分:0)
您错过了值,拆分字符的键,您必须使用列表作为值。
d = {}
file_src = open("fruits.txt","r")
for line in file_src:
(val, key) = line.strip().split(", ")
if d.get(key):
d[key].append(val)
else:
d[key] = [val]
print(d)
由您决定格式化最终字典d
,因为这是作业。