2016-04-12 14 views
0

Nasıl kodlanacağımı öğreniyorum ve bir sınıfın gerçekten nasıl çalıştığını tam olarak anlamadım. Ben mesela bir matris oluşturursanız:Python: Bir matristen satır ve sütundan değer elde edin

for value in row 

ve program demek bilecek: Ben rastgele bir matris var ve üst üste büyük değeri seçmek istiyorsanız

class Matrix(object): 

def __init__(self,i,j,value): 
    self.rows = i 
    self.cols = j 
    self.value = value 

i yazabilir ith satırındaki ij değeri? Senin durumunda

>>> for i, j in enumerate(["a","b","c"]): 
... print i, j 
... 
0 a 
1 b 
2 c 

: endeksleri interpolasyon yapmak

+0

'a bakabilirsiniz. Eğer python sınıflarıyla uğraşıyorsanız, şu soruya bir göz atın: http://stackoverflow.com/questions/6667201/how-to-define-two-dimensional -de-python Ve bu bir matris hakkında biraz bahseder http://stackoverflow.com/questions/6667201/how-to-define-two-dimensional-array-in-python Udacity de python bazı iyi başlangıç ​​kursları var . –

+0

Self.rows bir satır listesi (yani self.rows = ['dog', 'cat', hamster ']) veya Matrix'inizdeki satır sayısını gösteren bir tam sayı mıdır? – user1245262

+0

şuna bakın: https://docs.python.org/2/tutorial/classes.html – Fabiano

cevap

1

Genellikle pythonda Matrisler iki boyutlu diziler olurdu. Gibi:

matrix = [[11,12,13,14],[21,22,23,24],[31,32,33,34]] 

//

size böyle bir matris verecek aynıdır:

yüzden
11 12 13 14 
21 22 23 24 
31 32 33 34 

sahip satırları (dış dizi) ve bir dizi depolayan bir dizi her sıra için. Erişmek için olduğu pozisyonda (2,4) en değeri 24 Eğer

matrix[1][3] 

matrix[1] = [21,22,23,24] gibi matrix[1][3] = [21,22,23,24][3] = 24

için matris yineleme için yapacağını (verilen iki boyutlu dizisi yani) yapabilirsiniz:

#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 

Örneğinizde, 3 parametre ile başlatılacak bir Matrix sınıfı tanımladınız: i, j ve value. Daha fazla yapmıyorsun. Kendi matris sınıfınızın örnekleri için here

+0

Bu kesinlikle maksimum bir dizin vermez. – knh170

0

Kullanım enumerate Ancak Pythonic way to find maximum value and its index in a list?

:

# 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 

birden çok yolu örneğin vardır listeden en büyük elemanı bulmak için , daha akıllıca yolu, programlama kendiniz gerekli değilse, numpy.matrix kullanmaktır.

0

for value in row 

kod size satırda büyük değeri almazsınız. Satırdaki her bir öğeyi (tabii ki satır satırını belirledikten sonra) yineleyecektir. En büyük sayıyı almak için bir çek eklemeniz gerekiyor.

İlgili konular