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