Python如何将多行文本文件内容转换为键对应列表的字典
实现方案
你的初步思路方向正确,只需补充字典处理逻辑、修正变量名冲突问题即可(原代码中文件名变量和拆分结果变量都叫words,运行会报错)。
完整可运行代码
words_dict = {} # 此处替换为你的实际文件路径 file_path = "words.txt" with open(file_path, 'r', encoding='utf-8') as f: for line in f: # 去除首尾空白后按第一个冒号拆分,避免值内容含冒号时拆分异常 parts = line.strip().split(':', 1) key = parts[0] if len(parts) == 2: # 按逗号拆分值,同时去除每个元素首尾的多余空格 value = [i.strip() for i in parts[1].split(',')] else: # 无冒号时赋值空列表 value = [] words_dict[key] = value print(words_dict)
逻辑说明
- 拆分冒号时设置
maxsplit=1,仅拆分第一个出现的冒号,兼容值中本身包含冒号的场景 - 对每个值元素做
strip()处理,适配逗号前后带空格的文本格式,避免生成带多余空格的列表元素 - 修正了变量名冲突问题,不会出现运行时报错
运行代码后输出结果与你预期完全一致:{'be': ['was', 'were'], 'I': ['you'], 'Tom': []}
内容的提问来源于stack exchange,提问作者Frezoki
相关产品推荐
相关产品推荐

