1.2.23 · HinglishIntroduction to Programming (Python)

Tuples — immutability, use cases

1,939 words9 min readRead in English

1.2.23 · Coding › Introduction to Programming (Python)


WHAT is a tuple?


WHY does immutability exist? (first-principles reasoning)

Programming languages humein collection ke do flavours deti hai purpose ke saath:

  1. Lists — jab data time ke saath change hota ho (ek growing to-do list).
  2. Tuples — jab data change nahi hona chahiye (ek fixed coordinate, ek date).

"Tuples dict keys ho sakte hain lekin lists kyun nahi" — derive karna

Ek dictionary ek key ko store karta hai usse ek number compute karke jo hash kehlata hai. Rule yeh hai:

Logic ka flow (ise derive karo):

  1. Dict ek key ko uske hash se dhundhta hai, phir equality check karta hai.
  2. Agar ek key ke contents change ho sakein, toh uska hash bhi change ho jaata.
  3. Phir dict us entry ko "bhool" jaata — aap usse kabhi nahi dhoondh paate.
  4. Isliye Python sirf hashable (effectively immutable) keys allow karta hai.
  5. Tuples (of immutable items) immutable hain → hashable hain → ✅ valid keys.
  6. Lists mutable hain → unhashable hain → ❌ TypeError.
d = {(0, 0): "origin"}     # works
d = {[0, 0]: "origin"}     # TypeError: unhashable type: 'list'

HOW tuples behave — jo operations aap kar sakte aur nahi kar sakte

Figure — Tuples — immutability, use cases

Worked Examples


Tuple vs List — kab kya choose karein (80/20)

Tuple List
Syntax () []
Mutable? No Yes
Hashable? Yes (if items are) No
Speed Thoda faster/leaner Zyada overhead
Methods count, index bahut saare (append…)

Active Recall

Recall Forecast-then-Verify (answer padhne se pehle predict karo)
  1. type((5)) kya print karega? → <class 'int'> (koi comma nahi ⇒ tuple nahi).
  2. Kya (1, [2]) dict key ho sakta hai? → Nahi — isme ek list hai, toh yeh unhashable hai.
  3. Kya t + (1,) t ko modify karta hai? → Nahi — ek naya tuple banata hai.
  4. Tuples ke sirf do methods kaunse hain? → count aur index.
Recall Feynman: ek 12-saal ke bacche ko samjhao

Socho glued-together lockers ki ek row. Tune har locker label kiya aur andar ek toy rakha. Kyunki woh glued hain, aap koi naya locker add nahi kar sakte ya koi nahi nikal sakte — yahi hai tuple: ordered aur locked. Ek list wheels wale lockers hain jo aap kabhi bhi rearrange kar sakte ho. Ab, agar tune ek open box of crayons ek glued locker ke andar rakha, toh aap locker move nahi kar sakte, lekin fir bhi aur crayons box mein daal sakte ho — isliye ek tuple jisme list ho, us list ko phir bhi change kiya ja sakta hai.


Connections

  • Lists — mutability, methods — mutable counterpart; inke beech choose karo.
  • Dictionaries — keys and values — tuples immutable keys ke taur par shine karte hain.
  • Sets — hashing & uniqueness — sirf hashable (tuple-like) items allowed hain.
  • Functions — return values — multiple returns actually tuples hote hain.
  • Mutable vs Immutable objects — parent concept (int, str, tuple vs list, dict, set).
  • Hashing in Pythonkyun immutability dict keys enable karta hai.

Syntactically tuple ko kya define karta hai — parentheses ya comma?
Comma; parentheses optional grouping hain. 3, 4 ek tuple hai, (3) sirf ek int hai.
Ek one-element tuple kaise likhte hain?
Trailing comma ke saath: (42,).
Tuples dictionary keys kyun ho sakte hain lekin lists nahi?
Tuples immutable hain → hashable (stable hash), lists mutable hain → unhashable, toh woh dict ka lookup tod denge.
t[0] = 5 kisi tuple par kaunsa error deta hai?
TypeError — tuples item assignment support nahi karte.
Tuple immutability deep hoti hai ya shallow?
Shallow — slots fixed hain, lekin andar rakha koi mutable object (jaise list) phir bhi modify ho sakta hai.
Sirf do tuple methods ke naam batao.
count aur index.
Kya t = t + (9,) original tuple ko mutate karta hai?
Nahi — ek naya tuple banata hai aur name t ko rebind karta hai.
a, b = b, a swap andar se kaise kaam karta hai?
Right side b, a ek temporary tuple mein pack hota hai, phir a aur b mein unpack hota hai.
Tuple ko list ke upar kab prefer karna chahiye (80/20 rule)?
Fixed records ke liye, dict/set keys ke liye, aur aisi data ke liye jo accidentally change nahi honi chahiye.
Jo function return min(x), max(x) karta hai woh actually kya return karta hai?
Ek tuple (min, max) jo caller unpack kar sakta hai.

Concept Map

builds

has property

contrasts with

enables

permits

unhashable so

allows

conveys

permits only

slicing yields

Tuple ordered collection

The comma

Immutability

List mutable

Hashable value

Valid dict key or set member

Safe to share

Signals intent

Read-only ops index slice len

New tuple on slice or concat