0

有没有办法将列表嵌入或集成到 .py 文件中?

我有一个字典列表,存储在磁盘上hypotheses.npz,打印时看起来像这样(前两个元素):

[[ {'d3': 936.0, 'v': 110.89930725097656, 'c1': 4.5781828608194246, 'c0': -0.11199983705745155, 'd2': 1041.0, 'd4': 495.0, 'fn_def': array([/Desktop/example/behaviors.pyc, BGL_Day_Av, [1482, 1483, 1484]], dtype=object), 'd1': 493.0}] [ {'d3': 949.0, 'v': 109.9293212890625, 'c1': 4.7908983437736889, 'c0': -0.097829151375310855, 'd2': 1054.0, 'd4': 831.0, 'fn_def': array([/Desktop/example/behaviors.pyc, BGL_Day_Av, [966, 967, 968]], dtype=object), 'd1': 321.0}]]

我想要第二个 .py 文件来使用它,但我想让那个文件可移植,所以我不想从磁盘读取这个 .npz 文件。将列表静态写入 python 文件的最佳方法是什么,并给它一些可以在最终脚本中使用的名称?

4

1 回答 1

2

您可以序列化列表对象并嵌入字符串:

import pickle

lst = [[ {'d3': 936.0, 'd2': 1041.0, 'd4': 495.0} ]]

print 'pickle_string = """'+ pickle.dumps(lst) +'"""'

输出:

pickle_string = """(lp0
(lp1
(dp2
S'd4'
p3
F495.0
sS'd2'
p4
F1041.0
sS'd3'
p5
F936.0
saa."""

解压:

lst = pickle.loads(pickle_string)
于 2013-01-08T00:43:27.390 回答