Python 将输入的字符串()转换回二维矩阵

Python 将输入的字符串()转换回二维矩阵,python,python-3.x,string,matrix,codeskulptor,Python,Python 3.x,String,Matrix,Codeskulptor,在我用CodeSkupltor3编写的python程序中,数据作为单个数字存储在列表列表(2d矩阵)中。因为CodeSkulptor无法保存文件,所以我为用户添加了一个导出数据的选项。打印出来供用户复制到剪贴板 下面是一个矩阵的示例: [0,3,4,3,2],[1,2,1,2,3],[3,3,1,2],[3,4,0,3,2],[2,2,2,2,1,0]] 但是,主列表中的列表数量可能不同,子列表中的整数数量也可能不同 当出现input()语句提示时,用户应该能够将数据粘贴回程序中。由于传递到输入

在我用CodeSkupltor3编写的python程序中,数据作为单个数字存储在列表列表(2d矩阵)中。因为CodeSkulptor无法保存文件,所以我为用户添加了一个导出数据的选项。打印出来供用户复制到剪贴板

下面是一个矩阵的示例:

[0,3,4,3,2],[1,2,1,2,3],[3,3,1,2],[3,4,0,3,2],[2,2,2,2,1,0]]

但是,主列表中的列表数量可能不同,子列表中的整数数量也可能不同

当出现
input()
语句提示时,用户应该能够将数据粘贴回程序中。由于传递到输入语句中的所有数据都是字符串格式,因此需要将其转换回矩阵以供使用

CodeSkulptor没有
num.py
eval()
。我尝试过使用
string.split()
的各种组合,但没有一种组合能正确地将它们分解。我还尝试使用
list()
,但结果是字符串中的每个字符都成为列表中的一项:

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",","3",","2","3","3

如何将字符串转换回矩阵?

以下是一个解决方案:

a = '[[0, 3, 4, 3, 2], [1, 2, 1, 2, 3], [3, 3, 3, 1, 2], [3, 4, 0, 3, 2], [2, 2, 2, 1, 0]]'

lst_lst = []
for i in a[:-1].replace('[', '').split(']'):
    lst = []
    for carac in i:
        if carac not in [',', ' ']:
            lst.append(int(carac))
    lst_lst.append(lst)
lst_lst
-> [[0, 3, 4, 3, 2], [1, 2, 1, 2, 3], [3, 3, 3, 1, 2], [3, 4, 0, 3, 2], [2, 2, 2, 1, 0]]

将输入字符串传递到
json.loads()
中可以吗?@supershot确实可以,谢谢!supershot已经给出了一个较短的答案,但感谢您的帮助。此解决方案产生了一个额外的行:[[0,3,4,3,2],[1,2,1,2,3],[3,3,3,1,2],[3,4,0,3,2,2,1,0], []]