Foundations — Generator expressions — memory efficiency
1.2.36 · D1· Coding › Introduction to Programming (Python) › Generator expressions — memory efficiency
Pehle aapko parent note ke us claim par trust karna hoga ki ek generator memory use karta hai jabki list — lekin uske liye aapko har symbol aur word ki proper samajh honi chahiye. Hum inhe ek dusre pe depend karne wale order mein bilkul scratch se build karenge. Koi cheez define hone se pehle use nahi ki jaayegi.
1. Item kya hota hai? (sab kuch ka atom)
Ek plate par ek sandwich imagine karo. Woh ek sandwich ek item hai. Jab hum baad mein "ek item ek time" bolein, toh matlab hai bilkul ek plate aapke haath mein.

Topic ko iska zaroorat kyun hai: puri memory wali argument yeh hai ki "kitne items ek hi moment mein exist karte hain". Toh "item" woh unit hai jise hum count karenge.
2. Collection / Sequence kya hota hai?
Ek table par plates ka poora stack imagine karo. Har plate ek item hai (section 1); stack hi collection hai. Is poore topic ka key question yeh hai:
Kya saari plates table par ek saath rakhni padti hain, ya hum inhe ek ek karke serve kar sakte hain?
Ek list "saari plates table par" wala jawab hai. Ek generator "ek plate ek time" wala jawab hai.
3. Letter — "kitne"
Number ki jagah letter kyun? Kyunki hum ek aisa statement chahte hain jo har size ke liye sach ho. likhne se hum keh sakte hain "chahe stack kitna bhi bada ho jaaye…". Stack ko aur aur oocha hote imagine karo — uski height hai.
Hum ko ke andar phir milenge, toh ise abhi lock kar lo: = items ki count.
4. Memory — kitchen nahi, desk
Do desks side by side imagine karo.
- Left desk (ek list): saari plates ek saath uski par stack hain. Bada stack → badi desk chahiye.
- Right desk (ek generator): kisi bhi moment mein bilkul ek plate, plus ek chhoti sticky-note jis par likha hai "agla plate kaise banana hai".

Topic ko iska zaroorat kyun hai: "memory efficiency" literally aapko kitni desk space chahiye hai. Sticky-note crucial trick hai — aage padho.
Python actually is desk space ko kaise allocate karta hai, yeh Memory management in Python mein dekho.
5. Recipe (state) — sticky-note
ke liye sticky-note bas do cheezein hold karti hai: "maine aakhri kab use kiya" aur "rule: usse square karo, phir ko ek se badhao". Woh note same size rehti hai chahe sequence 5 items ki ho ya 5 billion ki — yeh kabhi items list nahi karta, sirf agla item kaise milega yeh batata hai.
Yeh Lazy evaluation ka core hai: koi value compute karo sirf tab jab actually maanga jaaye, pehle nahi.
6. Iterate / on demand / ek ek karke yield karna
Ek "NEXT" button dabaane ki imagine karo. Har press par: current plate haath se jaati hai, recipe agla plate banati hai, aur woh aapke haath mein aa jaati hai. Aap kabhi bhi do nahi pakde rehte.

NEXT button ke peeche ka mechanism iterator protocol hai — Iterators and the iterator protocol dekho. def/yield ka sibling jo same tarah se values produce karta hai, woh Generator functions and yield mein cover hai.
7. Exhausted — button kaam karna band kar deta hai
Aakhri page ke baad printer imagine karo: NEXT press karo aur woh bas click karta hai, khaali. Yahi wajah hai ki parent note warn karta hai ki aap generator ko do baar loop nahi kar sakte. Jo plates aapne kha li woh gayi; dobara khaane ke liye aapko nayi recipe likhni hogi.
8. Big-O: aur — desk kaise badhti hai yeh measure karna
Ab symbols aur . Yeh describe karte hain ki jaise badhta hai desk space kaise change hoti hai, fixed clutter ignore karke.
Do lines ko graph par imagine karo jaise badhta hai:

Generator ke liye "1" kyun? Kyunki "ek plate + ek sticky-note" ek fixed amount hai jo par depend nahi karta. Big-O mein hum kisi bhi fixed amount ko kehte hain — literally "constant 1 ki tarah badhta hai". Zyada detail Big-O space complexity mein hai.
9. Syntax symbols: () vs [] aur andar ke pieces
Woh single-character swap section 4 ki do desks ke beech ka fark hai.
Prerequisite map
Equipment checklist
Parent note ke liye aap ready hain agar aap inhe out loud answer kar sako:
Ek item hota hai
Symbol ka matlab hai
Memory ko yahan best picture kiya jaata hai
Generator ki recipe (state) store karti hai
Iterate karne ka matlab hai
On demand / lazy ka matlab hai
Ek generator exhausted ho jaata hai jab
memory describe karta hai jo
memory describe karta hai jo
List comprehension aur generator expression mein ek-character difference hai
[] square brackets ki jagah () parentheses.Ab parent topic par jao.