Python 将输入的字符串()转换回二维矩阵
在我用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]] 但是,主列表中的列表数量可能不同,子列表中的整数数量也可能不同 当出现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()语句提示时,用户应该能够将数据粘贴回程序中。由于传递到输入
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], []]