Python - 文件中的元组列表

Python - list of tuples from file

我已经完成了一些相当密集的计算,但无法将结果保存在 pickle 中(超出递归深度),因此我不得不打印所有数据并将其保存在文本文件中。

现在有什么简单的方法可以将我的文本元组列表转换为...... python 中的元组列表?输出如下所示:

[(10, 5), (11, 6), (12, 5), (14, 5), (103360, 7), (16, 6), (102725, 7), (17, 6), (18, 5), (19, 9), (20, 6), ...(it continues for 60MB)]

您可以使用 ast.literal_eval():

>>> s = '[(10, 5), (11, 6), (12, 5), (14, 5)]'
>>> res = ast.literal_eval(s)
[(10, 5), (11, 6), (12, 5), (14, 5)]
>>> res[0]
(10, 5)
string = "[(10, 5), (11, 6), (12, 5), (14, 5), (103360, 7), (16, 6), (102725, 7), (17, 6), (18, 5), (19, 9), (20, 6)]" # Read it from the file however you want

values = []
for t in string[1:-1].replace("),", ");").split("; "):
    values.append(tuple(map(int, t[1:-1].split(", "))))

首先,我用 [1:-1] 删除了开始和结束的方括号,我用 ); 替换了 ), 以便能够按 ; 拆分,以便它' 在元组内用逗号分隔,因为它们前面没有 )。这次我在循环中使用 [1:-1] 删除括号并用逗号分隔。 map 部分是将数字 str 转换为 int,我将它们附加为 tuple.