首页 > 解决方案 > 二维嵌套字典是否比 python 中带有 if 语句的几个扁平字典更快?

问题描述

我正在尝试找到一个更好的计划将数据放入字典中。我会将我的数据存储在一个 python 文件中的字典中(称之为“DB.py”)。并在另一个文件中导入“DB.py”来计算这些数据。(所以围绕字典的键和值会有很多工作)。因为有几个字典(大约 5 个),我不知道嵌套到 2d 字典或将其展平为 1d 字典并使用 if 语句选择在计算程序中使用哪一个更快?
选择一:two_dimensional_dict = {1:{key:value, ...},2:{key:value}, ...}
选择二:

one_dimensional_dict1 = {key:value, ...}
one_dimensional_dict2 = {key:value, ...}
...

在计算程序中,我将有一个变量(称为“检查”)来引导程序他们应该找到哪个字典。

if check == 1:
     # Do work with one-dimensional_dict1
elif check == 2:
     # Do work with one-dimensional_dict2
...

所以,我只是想知道哪个更快?任何建议和想法都会非常有帮助!

标签: pythonpython-3.xdictionary

解决方案


您可以使用 timeit 检查代码片段的时间

数据库.py

two_dimensional_dict = {1:{"key1": "value"},2:{"key2": "value"}}

one_dimensional_dict1 = {"key1": "value"}
one_dimensional_dict2 = {"key1": "value"}
>>> import timeit
>>> import db
>>> timeit.Timer('lambda :print(db.two_dimensional_dict[1]["key1"])').timeit()
0.06990942300035385
>>> timeit.Timer('lambda :print(db.one_dimensional_dict1["key1"])').timeit()
0.07525096900099015

对我来说 two_dimensional_dict 更快,但对你来说可能会有所不同


推荐阅读