如何使用Python将给定格式的文本文件转换为指定结构的字典?
文本转关联字典的实现
解析注意事项
- 文本里所有单独成行、结尾带冒号的全大写单词,直接拿来当字典的键
- 每个键对应的内容行,只取最前面的城市名,后面跟的数字是距离值,不需要存到结果里
- 输入文本里有个拼写小错误:RENNES条目下写的
Breast是打错了,实际对应的是Brest,解析的时候要修正,不然结果对不上
可直接运行的解析代码
raw_text = """ BREST: Rennes 244 RENNES: Breast 244 Caen 176 Nantes 107 Paris 348 CAEN: Calais 120 Paris 241 Rennes 176 CALAIS: Caen 120 Nancy 534 Paris 297 """ roads = {} current_section = None for line in raw_text.strip().splitlines(): line = line.strip() if not line: continue # 匹配带冒号的键行 if line.endswith(":"): current_section = line[:-1].strip() roads[current_section] = [] continue # 提取城市名,丢弃距离数值 city = line.split()[0] # 修正输入拼写错误 if city == "Breast": city = "Brest" roads[current_section].append(city)
最终输出结果
运行代码后得到的字典完全匹配预期结构:
roads = {'BREST': ['Rennes'], 'RENNES': ['Brest', 'Caen', 'Nantes', 'Paris'], 'CAEN': ['Calais', 'Paris', 'Rennes'], 'CALAIS': ['Caen', 'Nancy', 'Paris'] }
内容的提问来源于stack exchange,提问作者Alexander Wills
相关产品推荐
相关产品推荐

