Skip to main content
 首页 » 编程设计

python之从文本到字典,更新键值

2025年05月04日13lori

我有一个这种格式的文本文件:

key1 value1 
key2 value2 
key3 value3 
key3 value4 
key1 value5 

我使用一个循环(下面的代码)来创建一个字典。我有一个问题,在这个文本文件中有很多重复的键,但具有不同的值。我的循环不向现有键添加新值,而是完全覆盖它。因此, key 仍然是该 key 在文件中的最后一个值。

我需要一个包含所有键及其所有值的字典。

dict = dict() 
for line in file: 
    line = line.split() 
    if not line: 
        continue 
    dict[line[0]] = line[1:] 

请您参考如下方法:

使用字典中的列表来存储所有值。如果字典中还没有列表,请先创建一个空列表。

if not line[0] in dict: 
    dict[line[0]] = [] 
dict[line[0]].append(line[1:]) 

你也可以考虑

dict[line[0]].append(" ".join(line[1:])) 

如果您愿意,可以撤消 split()。

在好的 IDE 中编码时,IDE 会警告您使用 dict:

这是什么意思?这意味着你已经重新定义了 dict 并且你再也不能像以前那样使用它了:

完整代码:

result = dict() 
for line in ["a a", "b c", "a", "a a2"]: 
    line = line.split() 
    if not line: 
        continue 
    if not line[0] in result: 
        result[line[0]] = [] 
    result[line[0]].append(line[1:]) 
print(result)