Çözüldü Python'da çok boyutlu matris kullanımı

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

bedrhnaliakcy

Kilopat
Katılım
16 Temmuz 2018
Mesajlar
148
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Meslek
İndie software
Şimdi arkadaşlar elimde şöyle bir matris var.👇
matris = [ [1], [1, 2], [1, 2, 3], [1, 2, 3, 4] ]

Ben bunun indexlerine döngü yardımı ile nasıl ulaşırım? Birçok farklı yol denedim ama her satırda sütun boyutu farklı olduğu için hata alıyorum. Veyahut komple diziyi yazıyor. Kullandığım dil Python.

Eksik bilgi verdiysem söyleyin.
 
Çözüm
Bundan mı bahsediyorsun?
Python:
matris = [
    [1],
    [1, 2],
    [1, 2, 3],
    [1, 2, 3, 4]
]

for i in range(len(matris)):
    for j in range(len(matris[i])):
        matris[i][j] = 5

print(matris)
Enumerate'in nasıl kullanıldığını ve diğer yöntemi anlamana yardımcı olacaktır diye umuyorum.

Kod:
matris = [
    [1],
    [1, 2],
    [1, 2, 3],
    [1, 2, 3, 4]
]

for i in matris:
    for j in i:
        print(j)
    print()

for i, j in enumerate(matris):
    print(i, j)
 
İndexlere ulaşmayı açabilir misin? Mesela 2.listedeki 2 sayısına mı ulaşmak istiyorsun yoksa onun indexine mi?
hocam yapmak istediğim şey şu: her bir satır ve sütün a ulaşmak istiyorum ki onlara işlemler yapabileyim.
hocam aslında yapmak istediğim.
-------------------------------------------
a
b c
d e f
g h ı k
-------------------------------------------

a + b = c
b + d = e
d + g = h
c + e = f
e + h = ı
f + ı = k
--------------
olay bu ama verdiğiniz bilgilere göre değerlere ulaşıyorum lakin kopyasına değil aslına ulaşmam lazım.
 
Son düzenleme:
[CODE lang="python" title="matris"]
matris = [

[1],

[1, 2],

[1, 2, 3],

[1, 2, 3, 4]

]


#--------------------------------------------------------------------------
matris[1][1] = matris[0][0] + matris[1][0]

matris[2][1] = matris[1][0] + matris[2][0]

matris[3][1] = matris[2][0] + matris[3][0]



matris[2][2] = matris[1][1] + matris[2][1]

matris[3][2] = matris[2][1] + matris[3][1]



matris[3][3] = matris[2][2] + matris[3][2]
#---------------------------------------------------------------------------
[/CODE]

"-" arasındaki matematiksel işlemi basit bir şekilde yazmaya çalışıyordum ama kafam basmadı.
Bu arada bu enteresan şeyi yapma fikri mobil oyunda gördüm dedim ben bunu matrisler ile yapabilir miyim. oyun bu.

Mantık: en alttaki sayıyı üstündeki sayı ile toplayıp, sol tarafa eşitlemek. Bütün kareler için geçerli.
Bundan mı bahsediyorsun?
Python:
matris = [
    [1],
    [1, 2],
    [1, 2, 3],
    [1, 2, 3, 4]
]

for i in range(len(matris)):
    for j in range(len(matris[i])):
        matris[i][j] = 5

print(matris)
evet aradığım buydu ama o mantık ile istediğime ulaşamadığımı fark ettim. Yardımınız için çok teşekkür ederim hepinize.
 
Enumerate örneği paylaşmam ve bunun tek kelimeyle köylüce olan, 2 gram Python bilen birinin küfür edeceği şekilde verilen örneği kabul etmeniz...
Haklı bir isyan ancak newbie dilinden de anlamak gerek, arkadaşın liste boyutunun nereden geldiğini bilmek istemesi ya da kısaca c stili görmek istemesi oldukça normal. Bunun dışında söz dizimi, bellek kullanımı ve hız konularında enumerate her koşulda avantajlı ve doğru olan yoldur ancak bu tarz küçük listelerle çalışırken ne kullandığınızın pek de bir önemi yok.

@bedrhnaliakcy dostum arkadaşın mesajını çözüm olarak işaretlemen daha isabetli olur.
 

Technopat Haberler

Yeni konular

Geri
Yukarı