Şimdi Ara

List Comprehensions

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
6
Cevap
0
Favori
79
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Herkese merhaba, kötü hoca kurbanı olduğum için mecbur buralarda soluğu alıyoruz. Az önce bu kodları öğrenmeye çalıştım. Hepsini aşağıya bırakıyorum. Mümkün olduğunca açıklayıcı anlatırsanız çok memnun olurum.

    Kod

    Yığını:
    numbers = [] for i in range(10): numbers.append(i) print(numbers) # numbers = [i for i in range(10)] # print(numbers) for i in range(10): print(i**2) numbers = [i**2 for i in range(10)] print(numbers) numbers = [i*i for i in range(10) if i %3==0 ] print(numbers) MyString = "hello" MyList = [] for i in MyString: MyList.append(i) print(MyList) MyList = [i for i in MyString] print(MyList) years = [1983, 1999, 2008, 1956, 1986] ages = [2020-i for i in years] print(ages) result = [i if i%2==0 else "TEK" for i in range(1,10)] print(result) result = [] for a in range(3): for b in range(3): result.append((a,b)) print(result) result = [(a,b) for a in range(3) for b in range(3)] print(result)

    Kod

    Yığını:
    # numbers = [i for i in range(10)] # print(numbers)

    burada takıldıgım nokta fordan önce koyulan değişkenin tam olarak ne yaptığı tam anlamıyla anlamadım. ki alta bu şekilde yazılan bol bol kod var. Ne yazik ki onlarıda tam anlamıyla anlamadım.

    Ve son kod satırına gelirsek 1 gr olsun anlamadım. Anlamaya uğraş sarf ettim ama hoca kötü olursa ben ne yapabilirim ki? Cevap yazacak arkadaşlara şimdiden teşekkürler.








  • Su satir uzerinden aciklamaya calisayim;


    numbers = [i*2 for i in range(10)]


    bunu iki asamali bir islem gibi dusun;

    1. for i in range(10)
    2. i*2


    Simdi burada for kismi (birinci satir) i degiskenini 0 dan 9 a kadar iterate ediyor.

    for dan onceki kisim ise her iterate edilen i degiskeninin nasil listyeye eklenecegini belirtiyor. eger for dan once sadece i yazsaydik;


    numbers = [i for i in range(10)]


    number listesi "0 1 2 3 4 5 6 7 8 9" degerlerini icerecekti. ama biz i*2 yazdigimiz icin her i degeri once 2 ile carpilip sonra listeye eklenecek. yani "0 2 4 6 8 10 12 14 16 18" olacak.


    for dan once i**2 yazsaydik bu sefer i nin karesini alip yazacakti; "0 1 4 9 16 25 36 49 64 81"


    umarim anlatabilmisimdir.




    < Bu mesaj bu kişi tarafından değiştirildi controller_ -- 26 Ekim 2020; 22:6:54 >
  • baya anladım diye bilirim ama baştaki değişke nasıl listeye nasıl ekleneceğini belirtiyor sanırım doğru anladım ama ufak bir sorun var


    eger if den once sadece i yazsaydik;


    numbers = [i for i in range(10)


    sanırım bu cümlede if blogundan bahsetmişsiniz ama yazdığınız örnekde if bloguna dair bişey yok yada farkında olmadan yazdınız tam emin değilim

  • evet, if ler for olacak. typo..

  • Kod

    Yığını:
    # Acik Hali result = [] for i in range(10):   result.append(i) # Comprehension Hali result = [i for i in range(10)] ######################################### # Acik Hali result = [] for i in range(10):   result.append(i*2)    # Comprehension Hali result = [i*2 for i in range(10)] ######################################### # Acik Hali result = [] for i in range(10): for j in range(10):   result.append((i,j))    # Comprehension Hali result = [(i,j) for i in range(10) for j in range(10)] ######################################### # Acik Hali result = [] for i in range(10): for j in range(10): if i%2 == 0 and j%2 == 0:   result.append((i,j))    # Comprehension Hali result = [(i,j) for i in range(10) for j in range(10) if i%2==0 and j%2==0]


    Kisaca comprehension'un girisindeki kisim result.append(i)'e tekabul ediyor gibi dusunebilirsin. for i in ITERABLE ise i'nin itere edecegi nesneyi belirliyor.

    Comprehension'lari daha iyi kavramak icin acik halini yazip onu kisaltmayi deneyebilirsin.





  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.