在我用CodeSkupltor3编写的python程序中,数据作为单个数字存储在列表列表(二维矩阵)中。因为CodeSkulptor无法保存文件,所以我为用户添加了一个导出数据的选项。它已打印出来,供用户复制到剪贴板。
以下是矩阵的示例:
[[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]]
但是,主列表中的列表数量可以变化,子列表中的整数数量也可以变化。
在input()
语句提示下,用户应该能够将数据粘贴回程序中。由于传递到输入语句的所有数据均为字符串格式,因此需要将其转换回矩阵以供使用。
CodeSkulptor没有num.py
或eval()
。我尝试使用string.split()
的各种组合,但是没有尝试正确组合使用。我也尝试使用list()
,但是结果是字符串中的每个字符都成为列表中的一个项目:
['[','[','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',']',']'
如何将字符串转换回矩阵?
答案 0 :(得分:1)
这是一个解决方案:
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]]