这里我有一个函数,当我阅读时,它只返回最后一行。我究竟做错了什么?
def read():
with open("text.txt","r") as text:
return dict(line.strip().split() for line in text)
文本文件很简单,两列
asd 209
asd 441
asd 811
asd 160
asd 158
我想一直读入字典,asd
部分作为键,数字作为值。
这里我有一个函数,当我阅读时,它只返回最后一行。我究竟做错了什么?
def read():
with open("text.txt","r") as text:
return dict(line.strip().split() for line in text)
文本文件很简单,两列
asd 209
asd 441
asd 811
asd 160
asd 158
我想一直读入字典,asd
部分作为键,数字作为值。
字典键必须是唯一的。您在该文件中只有一个唯一键。
您本质上是为同一个键分配不同的值,并且只有最后一个值是可见的,因为以前的值被覆盖:
>>> d = {}
>>> d['asd'] = 209
>>> d['asd'] = 441
>>> d
{'asd': 441}
要存储最大值,请使用:
def read():
res = {}
with open("text.txt","r") as text:
for line in text:
key, value = line.split()
if int(value) > res.get(key, -1):
res[key] = int(value)
return res
要将值附加到每个字典键的列表中,您可以使用 defaultdict
from collections import defaultdict
def read():
result = defaultdict(list)
with open("text.txt","r") as text:
for line in text:
key, value = line.strip().split()
result[key].append(value)
return result