矩阵类定义

时间:2011-03-22 12:43:16

标签: python

我需要一些帮助,尤其是b)。谢谢

为矩阵定义一个类,如下所示: (a)提供__init__的实施,其中列出了一份清单作为输入 并返回matrix类型的新对象。

对于矩阵A =

1 2
3 4

用户可以输入A = matrix( [[1,2],[3,4]])

(b)提供__repr__的实现,该实现返回矩阵的字符串表示,在单独的行中打印每一行,例如印刷A. 为:

1, 2
3, 4

2 个答案:

答案 0 :(得分:6)

对于a),它实际上取决于您希望如何存储矩阵。将矩阵存储为列表列表,对于大多数用途来说可能都很好,但我不知道你的使用的确切含义。矩阵具有列表列表缺少的约束(所有行具有相同数量的相同类型的项目);这个课程要确保限制是正确的。也就是说,如果这是整个任务,那么只需使用列表列表就可以了。

因此,您可能希望对输入进行一些双重检查。 len()方法会派上用场。

以下是构造函数需要能够处理的内容,最终使用Exceptions:

  • Matrix([])
  • Matrix("Hi")
  • Matrix([1])
  • Matrix([1], [2])
  • Matrix([1], [2, 3])
  • Matrix([1,2], [3, 4])
  • Matrix([1.0, 2.0], [3.0, 4.0])
  • Matrix([1.0 + 2j, 3.0 - 4j], [5.0 + 6.0j, 7.0 + 8.0j])
  • a = []; a = [a, a]; Matrix(a)

对于b),您需要做的就是在每行元素和每行之间", "之间放置一个"\n"If only there was an easy way to do that...

答案 1 :(得分:3)

class matrix(object):
   def __init__(self,matrix)
      self.matrix = matrix

   def __repr__(self):
      return '\n'.join(','.join(str(m) for m in n) for n in self.matrix)

由于这是家庭作业,我强烈建议您查看文档中您不知道的所有内容并使用它。