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

Python中是否有类似R语言dput的函数?如何复现指定字典?

Python 中类似 R 语言 dput 的功能及字典复现方法

R 的 dput() 用于输出对象的可复现代码,Python 里没有同名函数,但有几个等价方案可以实现相同效果:

1. 生成可复现的对象代码

使用 repr()

repr() 会返回对象的官方字符串表示,这个字符串可以直接作为 Python 代码运行还原原对象,是最接近 dput() 的功能:

my_dict = {1: {'Geeks': [[1, 'N', None]], 'Geeks1': [[1, None, 'H']]}}
# 输出可复现的代码字符串
print(repr(my_dict))

输出结果:

{1: {'Geeks': [[1, 'N', None]], 'Geeks1': [[1, None, 'H']]}}

直接复制这段输出,就能在其他环境中重建原字典。

使用 pprint 格式化输出(适合大字典)

如果字典包含大量键值对,pprint 模块的 pprint() 可以输出格式化后的字符串,结构更清晰易读,同时保持可复现性:

from pprint import pprint
pprint(my_dict, width=1)

输出结果:

{1: {'Geeks': [[1, 'N', None]],
     'Geeks1': [[1, None, 'H']]}}

2. 还原对象

拿到生成的代码字符串后,推荐用 ast.literal_eval() 来安全解析,它只处理 Python 字面量(如字典、列表、字符串等),避免了 eval() 执行恶意代码的风险:

import ast
# 假设这是从输出中复制的字符串
dict_str = "{1: {'Geeks': [[1, 'N', None]], 'Geeks1': [[1, None, 'H']]}}"
restored_dict = ast.literal_eval(dict_str)
# 验证还原后的对象和原对象一致
print(restored_dict == my_dict)  # 输出 True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:57:39