如何修正Python代码,将目标列表转换为指定格式的键值对字典?
问题修正方案
你的原代码错误地将每个拆分后的行都作为字典的键和值,没有区分日期和消费项的层级关系。正确的思路是逐个处理原列表中包含日期+消费的字符串块,拆分出日期和对应消费项后再构建字典。
修正后的代码
parsf2 = ['06/07/20\n 22,43€ gas\n 34,70€ street toll', '08/07/20\n 74,90€ street toll', '13/07/20\n 78€ street toll\n 157,90€ gas'] new_dict = {} for item in parsf2: # 按换行拆分字符串,同时去除前后空白和空行 lines = [line.strip() for line in item.split('\n') if line.strip()] # 第一个元素是日期,剩下的是消费项 date = lines[0] expenses = lines[1:] # 存入字典 new_dict[date] = expenses print(new_dict)
代码说明
- 遍历原列表中的每个完整字符串(每个字符串对应一个日期的所有消费记录)
- 用
split('\n')拆分换行,再通过列表推导式去除每行的前后空白,同时过滤掉空行 - 拆分后的列表第一个元素是日期,剩余元素是该日期下的所有消费项
- 将日期作为字典的键,消费项列表作为对应的值存入字典
运行结果
{'06/07/20': ['22,43€ gas', '34,70€ street toll'], '08/07/20': ['74,90€ street toll'], '13/07/20': ['78€ street toll', '157,90€ gas']}
内容的提问来源于stack exchange,提问作者TanukiJoe
相关产品推荐
相关产品推荐

