Python 3,如何将保存为字符串的2D列表转换为列表

Python 3,如何将保存为字符串的2D列表转换为列表,python,list,Python,List,我已将一些列表保存到一个txt文件中,以供以后使用。我想把它们列在一个清单上 记事本++中csv文件中显示的第一行 [781828,2]、[844896,2]、[9029550,2]、[9571010,2]、[10241070,2]、[10851133,2]、[11431194,2]、[12031251,2]、[12701320,2]、[13301380,2]、[13911436,2]、[14571516,2]、[15251572]、[16011665,2]、[16961821,2]、[1760

我已将一些列表保存到一个txt文件中,以供以后使用。我想把它们列在一个清单上

记事本++中csv文件中显示的第一行

[781828,2]、[844896,2]、[9029550,2]、[9571010,2]、[10241070,2]、[10851133,2]、[11431194,2]、[12031251,2]、[12701320,2]、[13301380,2]、[13911436,2]、[14571516,2]、[15251572]、[16011665,2]、[16961821,2]、[17601817,2]、[18901822]、[17601817,2]、[2012,2052]、[2012]

with open('outputSelectorData/type_A.csv', newline='') as a:
readerA = csv.reader(a)

for i in range(count):
        A_list = next(readerA)
        print(A_list)

            
        #f = open("test.csv", "a+")
        #f.write(str(label) + '\n')
        #f.close()
打印A_列表输出以下内容:

[781]、[828]、[2]、[844]、[896]、[2]、[902]、[950]、[2]、[957]、[1010]、[2]、[1024]、[1070]、[2]、[1085]、[1133]、[2]、[1143]、[1194]、[2]、[1203]、[1251]、[2]、[1270]、[1322]、[1330]、[1380]、[2]、[1391]、[1436]、[2]、[2]、[1457]、[1516]、[1572]、[1522]、[[1601]、[1665]、[2]、[1696]、[1751]、[2]、[1760]、[1817]、[2]、[1827]、[1880]、[2]、[1892]、[1943]、[2]、[1955]、[2002]、[2]、[2012]、[2062]、[2]]

我尝试了一些方法来将其放入2D列表(),但我认为在我开始使用逗号和[]等分隔之前,可能有人知道一种简单的方法


谢谢

您可以在
ast
模块中使用
literal\u eval
,如下所示:

from ast import literal_eval

text = "[[781, 828, 2], [844, 896, 2], [902, 950, 2], [957, 1010, 2], [1024, 1070, 2], [1085, 1133, 2], [1143, 1194, 2], [1203, 1251, 2], [1270, 1322, 2], [1330, 1380, 2], [1391, 1436, 2], [1457, 1516, 2], [1525, 1577, 2], [1601, 1665, 2], [1696, 1751, 2], [1760, 1817, 2], [1827, 1880, 2], [1892, 1943, 2], [1955, 2002, 2], [2012, 2062, 2]]"

lists = (literal_eval(text))
for el in lists:
    print(el)
或者也可以使用
json

import json

text = "[[781, 828, 2], [844, 896, 2], [902, 950, 2], [957, 1010, 2], [1024, 1070, 2], [1085, 1133, 2], [1143, 1194, 2], [1203, 1251, 2], [1270, 1322, 2], [1330, 1380, 2], [1391, 1436, 2], [1457, 1516, 2], [1525, 1577, 2], [1601, 1665, 2], [1696, 1751, 2], [1760, 1817, 2], [1827, 1880, 2], [1892, 1943, 2], [1955, 2002, 2], [2012, 2062, 2]]"

lists = json.loads(text)
for el in lists:
    print(el)
输出将完全相同:

[781, 828, 2]
[844, 896, 2]
[902, 950, 2]
[957, 1010, 2]
[1024, 1070, 2]
[1085, 1133, 2]
[1143, 1194, 2]
[1203, 1251, 2]
[1270, 1322, 2]
[1330, 1380, 2]
[1391, 1436, 2]
[1457, 1516, 2]
[1525, 1577, 2]
[1601, 1665, 2]
[1696, 1751, 2]
[1760, 1817, 2]
[1827, 1880, 2]
[1892, 1943, 2]
[1955, 2002, 2]
[2012, 2062, 2]

您可以在
ast
模块中使用
literal\u eval
,如下所示:

from ast import literal_eval

text = "[[781, 828, 2], [844, 896, 2], [902, 950, 2], [957, 1010, 2], [1024, 1070, 2], [1085, 1133, 2], [1143, 1194, 2], [1203, 1251, 2], [1270, 1322, 2], [1330, 1380, 2], [1391, 1436, 2], [1457, 1516, 2], [1525, 1577, 2], [1601, 1665, 2], [1696, 1751, 2], [1760, 1817, 2], [1827, 1880, 2], [1892, 1943, 2], [1955, 2002, 2], [2012, 2062, 2]]"

lists = (literal_eval(text))
for el in lists:
    print(el)
或者也可以使用
json

import json

text = "[[781, 828, 2], [844, 896, 2], [902, 950, 2], [957, 1010, 2], [1024, 1070, 2], [1085, 1133, 2], [1143, 1194, 2], [1203, 1251, 2], [1270, 1322, 2], [1330, 1380, 2], [1391, 1436, 2], [1457, 1516, 2], [1525, 1577, 2], [1601, 1665, 2], [1696, 1751, 2], [1760, 1817, 2], [1827, 1880, 2], [1892, 1943, 2], [1955, 2002, 2], [2012, 2062, 2]]"

lists = json.loads(text)
for el in lists:
    print(el)
输出将完全相同:

[781, 828, 2]
[844, 896, 2]
[902, 950, 2]
[957, 1010, 2]
[1024, 1070, 2]
[1085, 1133, 2]
[1143, 1194, 2]
[1203, 1251, 2]
[1270, 1322, 2]
[1330, 1380, 2]
[1391, 1436, 2]
[1457, 1516, 2]
[1525, 1577, 2]
[1601, 1665, 2]
[1696, 1751, 2]
[1760, 1817, 2]
[1827, 1880, 2]
[1892, 1943, 2]
[1955, 2002, 2]
[2012, 2062, 2]
使用
ast
(抽象语法树)将字符串转换为列表

import ast
with open(r"file.txt") as file:
    for line in file:
        listt=ast.literal_eval(line)
print(listt)
使用
ast
(抽象语法树)将字符串转换为列表

import ast
with open(r"file.txt") as file:
    for line in file:
        listt=ast.literal_eval(line)
print(listt)

我使用literal_eval ValueError得到了以下错误:格式错误的节点或字符串:['['[781','828','2]','844','896','2]','902','950','2]','957','1010','2]','1024','1070','2]','1085','1133','2]','1143','1194','2]','1203','1251','2','1270','1322','1330','1380','2]','[1391”,“1436”,“2]”,“[1457”,“1516”,“2]”,“[1525”,“1577”,“2]”,“[1601”,“1665”,“2]”,“[1696”,“1751”,“2]”,“[1760”,“1817”,“2]”,“[1827”,“1880”,“2]”,“[1892”,“1943”,“2]”,“[1955”,“2002”,“2]”,“[2012”,“2062”,“2]”我使用文字评估值错误得到以下错误:格式错误的节点或字符串:[[[781', ' 828', ' 2]', ' [844', ' 896', ' 2]', ' [902', ' 950', ' 2]', ' [957', ' 1010', ' 2]', ' [1024', ' 1070', ' 2]', ' [1085', ' 1133', ' 2]', ' [1143', ' 1194', ' 2]', ' [1203', ' 1251', ' 2]', ' [1270', ' 1322', ' 2]', ' [1330', ' 1380', ' 2]', ' [1391', ' 1436', ' 2]', ' [1457', ' 1516', ' 2]', ' [1525', ' 1577', ' 2]', ' [1601]、[1665]、[2]、[1696]、[1751]、[2]、[1760]、[1817]、[2]、[1827]、[1880]、[2]、[1892]、[1943]、[2]、[1955]、[2002]、[2]、[2012]、[2062]、[2]]对我来说,使用csv.reader是问题的一部分。对于行内文件来说,使用csv.reader是问题的一部分。对于行内文件来说,使用csv.reader是问题的一部分。