加载泡菜字典或文件更快吗?

Is it faster to load a pickle dictionary or a file?

我有一个 .txt 文件,其中的键和值如下:

k1 v11
k1 v12
k1 v13
k2 v21
k2 v22
k3 v31
k3 v32

每次我 运行 我的脚本都需要检查给定值是否在该列表中。

我正在考虑预处理 .txt 文件以创建 dict 并保存在 pickle 文件中,如下所示:

d = {
    k1: [v11, v12, v13],
    k2: [v21, v22],
    k3: [v31, v32],
}

加载这样的字典应该更快还是读取原始文件更快?

我 运行 只创建一次字典,然后从泡菜中加载它。

何时使用 csv/txt 文件

  • 您需要一种可跨系统/跨语言传输的格式。
  • 您的数据是需要查看的报告的输出 外部应用程序。

何时使用 pickle

  • 您将从导出它们的同一个 set-up 中提取泡菜文件:泡菜是 version-specific。
  • 您希望将重复将数据转换为 Python 可以操作的格式的成本降至最低。
  • 性能很重要。 Pickle 文件是序列化数据,因此可以高效地读入 Python.