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.
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. |
List Comprehensions
-
-
Su satir uzerinden aciklamaya calisayim;
numbers = [i*2 for i in range(10)]
bunu iki asamali bir islem gibi dusun;
- for i in range(10)
- 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..
-
# 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]
Kod
Yığını: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.
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X