我正在学习如何编码,我不太明白一个类是如何工作的。如果我创建一个矩阵,例如:
class Matrix(object):
def __init__(self,i,j,value):
self.rows = i
self.cols = j
self.value = value
如果我有一个随机矩阵并希望连续选择最大值,我可以写:
for value in row
并且程序会知道我的意思是第i行中的值ij?
答案 0 :(得分:1)
通常在python中Matrixes是二维数组。像:
matrix = [[11,12,13,14],[21,22,23,24],[31,32,33,34]]
//与
相同会给你一个矩阵:
11 12 13 14
21 22 23 24
31 32 33 34
所以你有一个数组存储行(外部数组)和每行一个数组。要访问例如位置(2,4)的值,即24
你要做的
matrix[1][3]
为matrix[1] = [21,22,23,24]
和matrix[1][3] = [21,22,23,24][3] = 24
要遍历矩阵(即二维数组),您可以这样做:
#iterate over the rows
for row in matrix:
#max value
max = max(row)
print max
#if you want to iterate over the elements in the row do:
for element in row:
print element
在您的示例中,您定义的Matrix类将使用3个参数进行初始化:i
,j
和value
。你没有做得更多。有关您自己的矩阵类的示例,您可以查看here
答案 1 :(得分:0)
使用enumerate插入索引:
>>> for i, j in enumerate(["a","b","c"]):
... print i, j
...
0 a
1 b
2 c
在你的情况下:
# suppose m is an instance of class Matrix
for i, row in enumerate(m.value):
for j, ele in enumerate(row):
# find greatest and halt
# i, j are the expected index
yeild i, j
要从列表中查找最大元素,有多种方法,例如:Pythonic way to find maximum value and its index in a list?
但是,如果不需要自己编程,更聪明的方法是使用numpy.matrix。
答案 2 :(得分:0)
在
for value in row
代码不会让你获得行中最大的价值。它将迭代(遍历)行中的每个项目(一旦定义了行的行)。您需要添加支票才能获得最大数量。