我正在寻找一种将字符串转换为列表列表的优雅方法。我正在从文本文件中读取它们,因此无法改变我收到字符串的格式。这里作为示例字符串:
a = "[[1,2,3],[4,5,6],[7,8,9]]"
我想把它转换成这样的东西:
c = [[1,2,3],[4,5,6],[7,8,9]]
我能想到的唯一方法是使用.split()和.replace()
进行几个步骤。b = a.split('],[')
for i in range(len(b)):
b[i] = b[i].replace('[','')
b[i] = b[i].replace(']','')
b=[[x] for x in b]
b = [float(x[0].split(',')) for x in b]
c=[]
for l in b:
n=[]
for x in l:
n.append(float(x))
c.append(n)
虽然这有效,但它令人厌恶和笨拙。如果有人知道这样做的优雅方式,请告诉我。非常感谢
答案 0 :(得分:5)
>>> import json
>>> json.loads("[[1,2,3],[4,5,6],[7,8,9]]")
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
way很容易:)
>>> a = "[[1,2,3],[4,5,6],[7,8,9]]"
>>> import ast
>>> m=ast.literal_eval(a)
>>> m
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
这也有效