【发布时间】:2019-06-11 17:29:43
【问题描述】:
我有一个要翻译成 Python 的 Perl 程序。现在的重点是死记硬背,然后我将通过它使其更加 Pythonic(有很多文件和几个人在处理它,所以我不想通过更改代码来搞乱逻辑流程很多)。
Perl 代码创建一个散列 InputData,用来自输入文件的数据填充该散列。起初它是一维的,所以我只使用了字典。然后代码增加了第二个维度,看了this thread之后我用了defaultdict(dict)。现在我的 Perl 代码添加了第三个维度,期待在代码中也使用了第四个维度。
我一直在 Jupyter Notebook 中测试 dicts,当我尝试添加第三个维度时,我得到了这个 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 字典吗?这很荒谬吗?我还可以改用什么其他数据类型?
感谢您的帮助!
【问题讨论】:
-
这是 Python 2 还是 3?
-
3,抱歉应该包括那个
标签: python python-3.x perl dictionary