如何遍历要从字符串转换为矩阵的列表?

时间:2019-06-03 15:42:05

标签: python-3.x

我是Python的新手,目前正在研究关于运动主义的矩阵问题。到目前为止,这非常简单,但是我很难找出迭代此列表的最佳方法。我一直在网上搜索以尝试自行解决。

我要做的是在/ n中断处将底部提供的字符串转换为矩阵,然后转换为整数,以便我可以使用numpy返回行或列。

class Matrix(object):
def __init__(self, matrix_string):
        self.matrix = matrix_string.replace(' ', '').split('\n')
        self.temp = [int(i) for i in self.matrix[0]]

matrix = Matrix("1 2\n3 4")
print(matrix.temp)

我已经完成了转换列表的工作,但是现在我需要将整个列表(不仅仅是上面显示的特定索引)返回到新的临时列表中。那就是我被困住的地方。

1 个答案:

答案 0 :(得分:0)

虽然您可以在执行操作时转换列表,但以下行存在一些问题

self.temp = [int(i) for i in self.matrix[0]]

考虑将“ 12 1”转换为1、2、1而不是12、1

相反,您应该在换行符上进行分割,然后在空格处进行分割(不要将''替换为')

尝试自己完成此操作是一个很好的练习,但是如果您遇到问题,我会给您一个提示和解决方法

提示:首先将temp初始化为一个空列表,然后将列表一个接一个地添加


更多深度提示方法:将temp初始化为一个空列表。在换行符上分割矩阵。将每行追加到temp,并在空格处分割。

解决方案:

self.temp = []
self.matrix = matrix_string.split('\n')
for element in self.matrix:
        self.temp.append(element.split(' '))

这可以简化为列表理解的一行 您可以自己尝试或使用以下

self.temp = [element.split(' ') for element in matrix_string.split('\n')]