You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文件加载字典并还原为原始嵌套列表与数字列表?

解决方案

1. 从文件加载不含分号的字典

要将文件中带分号的文本转换为无分号的Python字典,核心是把字符串形式的列表还原为实际的列表对象,这里用ast.literal_eval(比eval更安全)实现:

import ast

loaded_dict = {}
with open("myfile.txt", 'r') as f:
    for line in f:
        # 移除换行符并按分号分割内容
        cleaned_line = line.strip()
        parts = cleaned_line.split(';')
        
        # 提取键值对:文件第一部分是原test_values元素,第二部分是原test_keys的列表字符串
        value_str = parts[0]
        key_list_str = parts[1]
        
        # 将字符串列表转为真实Python列表
        key_list = ast.literal_eval(key_list_str)
        
        loaded_dict[value_str] = key_list

执行后得到的loaded_dict结构如下:

{'123': ['tobbe', 'kalle'], '234': ['karl', 'Clara'], '345': ['finis'], '456': ['tank']}

2. 还原为原始列表

Python 3.7及以上版本的字典会保留插入顺序,直接提取字典的键和值即可还原原始列表:

# 还原test_values列表(对应字典的键)
test_values_loaded = list(loaded_dict.keys())

# 还原test_keys列表(对应字典的值)
test_keys_loaded = list(loaded_dict.values())

# 验证结果
print("还原后的test_values:", test_values_loaded)
print("还原后的test_keys:", test_keys_loaded)

输出结果:

还原后的test_values: ['123', '234', '345', '456']
还原后的test_keys: [['tobbe', 'kalle'], ['karl', 'Clara'], ['finis'], ['tank']]

内容的提问来源于stack exchange,提问作者TobbeTrollkarl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:55:17