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
.
我已经完成了一些相当密集的计算,但无法将结果保存在 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
.