gpt4 book ai didi

python - 将 Perl 中的多维哈希转换为 Python 字典

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:35 25 4
gpt4 key购买 nike

我有一个 Perl 程序,我想将其转换为 Python。现在的重点是死记硬背翻译,然后我将仔细检查并使其更加 Pythonic(有很多文件和几个人在处理它,所以我不想通过更改代码来搞乱逻辑流程)很多)。Perl 代码创建一个散列 InputData,并用输入文件中的数据填充该散列。起初它是一维的,所以我只使用了字典。然后代码添加了第二个维度,查看 this thread 后我用过defaultdict(dict) 。现在我的 Perl 代码已经添加了第三个维度,并且期待在代码中也使用第四个维度。

我一直在 Jupyter Notebook 中测试字典,当我尝试添加第三个维度时,我收到此 KeyError。

my_dict = defaultdict(dict)
my_dict['Status'] = 'free'
my_dict['Results']['Test1'] = 1
my_dict['Variables']['Coords']['X'] = 2

---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-19-dbbf5ada990b> in <module>
2 my_dict['Status'] = 'free'
3 my_dict['Results']['Test1'] = 1
----> 4 my_dict['Variables']['Coords']['X'] = 2

KeyError: 'Coords'

还有其他方法来创建多维 Python 字典吗?这很可笑吗?我可以使用什么其他数据类型来代替?

感谢您的帮助!

最佳答案

如果您想这样使用它,您也需要将 my_dict['Variables']['Coords'] 定义为字典,也许可以通过 defaultdict(dict)

#Define as default dict
my_dict['Variables']['Coords'] = defaultdict(dict)
my_dict['Variables']['Coords']['X'] = 2

print(my_dict)

输出将是

defaultdict( <class 'dict'> , {
'Status': 'free',
'Results': {
'Test1': 1
},
'Variables': {
'Coords': defaultdict( <class 'dict'> , {
'X': 2
})
}
})

关于python - 将 Perl 中的多维哈希转换为 Python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56548936/

25 4 0
文章推荐: html - 强制将 float