python - 将输入到 input() 中的字符串转换回二维矩阵
问题描述
在我用 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', ']', ']'
如何将字符串转回矩阵?
解决方案
这是一个解决方案:
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]]
推荐阅读
- java - 哪些类需要由容器管理,哪些类不需要?
- javascript - 如何使 NavBar 悬停下拉效果在 html 和 css 中起作用
- python - 在 /posts/posts/in/uthi-group/comment/ 配置不当
- simulation - 物理引擎准确吗?
- arduino - arduino pin的默认状态是什么?
- android - 使用 local_auth 时 ios 屏幕显示如下,但在 android Flutter 上没问题
- javascript - 由于某种原因,使用 jQuery 附加 keyup 处理程序不起作用
- c++ - 具有两个变量的质数检查器
- python - cx_Oracle.DatabaseError: DPI-1047: 找不到 64 位 Oracle 客户端库
- javascript - 如何为primeng的p卡动态分配背景样式?