将带有硬编码换行符的字符串转换为python中的矩阵

问题描述

我正在尝试创建一个类,该类采用带有硬编码换行符的数字字符串,并输出一个矩阵和有关该矩阵的详细信息。首先,我只是想能够创建矩阵,但是我很挣扎。我知道我可以使用numpy或类似的方法很容易地做到这一点,但要尝试练习。

class Matrix:
def __init__(self,matrix_string):
    self.convert_to_list = [int(s) for s in str.split(matrix_string) if s.isdigit()]
    self.split = matrix_string.splitlines()

我想我想把已经完成的两件事结合起来,但是我不知道如何将我的convert_to_list方法应用于我的split方法中的每个元素。

非常困惑。

样品输入/输出

Input = " 1 8 7 /n 6 18 2 /n 1 9 7 "

Desired Output = [[1,8,7],[6,18,2],[1,9,7]]

解决方法

您似乎想要一个列表列表。为此,您可以使用嵌套列表理解。

s = " 1 8 7 /n 6 18 2 /n 1 9 7 "
lst = [[int(x) for x in r.split()] for r in s.split('/n')]
print(lst)

输出

[[1,8,7],[6,18,2],[1,9,7]]
,

实际上并不难:

s = " 1 8 7 /n 6 18 2 /n 1 9 7 "
print([i.split() for i in s.split('/n')])

更轻松但更长的时间:

s = s.split('/n')
new = []
for i in s:
    new.append(i.split())
print(new)

输出:

[['1','8','7'],['6','18','2'],['1','9','7']]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...