Listeler ile ilgili ilginc bir konu ve lutfen yine yardim

Bu defa gercekten cok ilginc bir konu aslinda listeler ile ilgili ama sanirim biraz kapsamli bir konu ve bu nedenle anlamakta zorlaniyorum simdi verecegim ornekle ilgili satir satir bu konuyu anlatmanizi rica ediyorum zira konu kafami gercekten cok fazla agritiyor bu ornekteki her seyi lufen bana satir satir anlatinki ne oluyor bu komutlarin icinde bende anlayabileyim.

>>> M = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> M[1]
[4, 5, 6]
>>> col2 = [row[1] for row in M]
>>> col2
[2, 5, 8]
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

simdi buraya kadar ne yaptim ve ne oldu once satir satir bunu bir irdeleyelim tamami ile anlamak adina
simdi m degiskeninin icindeki listeyi aldim row burda 1 diyelim 2,5,8 elemanlarini siraya koyduk tamam ama simdi su ornekte is degisiyor ve uykusuz geceler basladi valla

>>> [row[1] + 1 for row in M]
[3, 6, 9]

simdi bununla beraber be ne yapmis oldum bunuda bir anlatin lutfen son olarak ise su ornege bakalim ve bu ornekte neler olup bitiyor lutfen ilk ornekten baslayarak ikinci ornegide aciklarmisiniz arkadaslar.

>>> [row[1] for row in M if row[1] % 2 == 0 ]
[2, 8]

Merhaba.

Uykusuz gecelere gerek yok, her şey öğreninceye kadar zordur. :slight_smile:
En başta, kod yazımınızda bazı küçük yanlışlar vardı, onları düzelttim.

Hangi kaynağı takip ediyorsunuz bilmiyorum ama bu bahsettiğiniz konu liste üreteçleri diye geçer ve bunu anlayabilmek için öncelikle listeleri çalışmanız gerekiyor. Listeleri çalıştınız mı?

İyi çalışmalar.

1 Beğeni

kodlarda ilginc bir durum yok firat ozgul kitabindaki liste kismini okursaniz zaten orda cok guzel sekilde anlatilmis.

1 Beğeni

listenin ilk elemani 0 dan basliyor buradan yola cikarak;
M[1]
birinci listeyi yani [4 5 6] yi temsil ediyor
sifirinci liste [1 2 3]

col2 = [row[1] for row in M]
M listesindeki her blogun 1 ci elemanlarini gosteriyor (sifirinci eleman 1 4 7)

[row[1] + 1 for row in M]
1+1 yapip 2 ci elemanlari bastiriyor
diye dusunuyorum

[row[1] for row in M if row[1] % 2 == 0 ]
[2, 8]
birinci elemanlari 2 5 8 i aliyor cift sayilari bastiriyor gibi gorunuyor.
ben sadece fikir yuruttum.
Yazilim konusunda yeniyim bu nedenle yorumumun dogrulugunu isin ustalari irdeleyip sonucu yazacaklardir.

3 Beğeni

Firat hocamin kitabini referans aliyorum calismalarimda ve bu liste konularina ek olarak ingilizce bir kitap,tan yardim aliyim dedim sanirim yeterli degilim listeler konusunda bu gun konuyu tekrar ele alicam.yalniz bu konu ile ilgili firat hocamin makalesinde ayni kodlari goremedim acaba benmi atladim konuyu ? Listeler konusunu gosteren detayli bir calisma varmi firat hocamizin orneklerine ek olarak?

Açıklamalarla birlikte yazıyorum umarım açıklayıcı olur.


    M = [[1, 2, 3],
         [4, 5, 6],
         [7, 8, 9]]

    print('M[0]', M[0])

    ikinciSütun = [satır[1] for satır in M]

    print ('İkinci Sütun ', ikinciSütun)

    # aynı örneği farklı şekilde yazalım

    for satır in M:
        print ('Satır ', satır[1])

    # >>> [row[1] + 1 for row in M]

    # bu örneğe bakalım. Örneği daha açık yazarsak daha iyi anlaşılacağını tahmin
    # ediyorum


    for satır in M:
        print ('Satır ', satır[1])
        print ('Satırın bir fazlası ', satır[1] + 1)

    # [row[1] for row in M if row[1] % 2 == 0 ]

    # bu örnekte benzer şekilde

    for satır in M:
        if (satır[1] % 2 == 0): # Eğer geçerli eleman 2 ile kalansız bölünebiliyorsa
            print ('Satır ', satır[1]

cok tesekkur ederim allah razi olsun kardeslerim bu listeler konusunu birakiyorum simdilik sanirim konulari atladim while ve for loop konusunu gordukten sonra bu konular daha acik ve net olucak zihnimde
tekrar tesekkur ederim yardimlariniz icin allah razi olsun hepinizden.

1 Beğeni