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

2024-10-04 01:23:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在我用CodeSkupltor3编写的python程序中,数据作为单个数字存储在列表列表(一个2d矩阵)中。因为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()语句提示时,用户应该能够将数据粘贴回程序中。因为传入input语句的所有数据都是字符串格式,所以需要将其转换回矩阵才能使用

CodeSkulptor没有num.pyeval()。我试过使用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', ']', ']'

如何将字符串转换回矩阵


Tags: 文件数据字符串用户程序示例列表input
1条回答
网友
1楼 · 发布于 2024-10-04 01:23:24

这里有一个解决方案:

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]]

相关问题 更多 >