Tuples
Tuple lists jaisi hi hai (ordered, indexed collection), lekin () se banti hai aur IMMUTABLE hai — ek baar banane ke baad elements add/remove/modify nahi kar sakte. Isse tuple thoda faster hai lists se, aur "ye data change nahi hoga" ka guarantee deta hai.
Common use-case: function se multiple values return karna (jaise pehle dekha), coordinates (x, y), ya kisi bhi data jo logically "fixed" hai — jaise ek din ke saal ke months.
point = (3, 4)
print(point[0]) # 3
# point[0] = 10 # ERROR: tuples immutable hain
name, age = ("Aarav", 20) # tuple unpacking
colors = ("red", "green", "blue")
print(len(colors)) # 3
single = (5,) # single-element tuple — comma ZAROORI hai!
not_tuple = (5) # ye sirf int 5 hai, tuple nahi!- () se banti hai, immutable hai (list ke ulat)
- Function se multiple return values ke liye common
- Single-element tuple ke liye trailing comma zaroori: (5,)
collections.namedtuple se ek tuple bana sakte ho jiske fields ko naam se access kar sakte ho (jaise point.x), na ki sirf index se (point[0]) — code zyada readable ban jaata hai, immutability bhi maintain rehti hai.
from collections import namedtuple
Point = namedtuple("Point", ["x", "y"])
p = Point(3, 4)
print(p.x, p.y) # 3 4 — naam se access!
print(p[0]) # 3 — index se bhi kaam karta haiLists dictionary keys nahi ban sakti (mutable hain, unhashable), lekin tuples ban sakti hain (immutable, hashable) — coordinates ya composite keys ke liye common pattern.
distances = {
(0, 0): 0,
(1, 1): 1.41,
(2, 2): 2.83
}
print(distances[(1, 1)]) # 1.41
# grid[row, col] jaisa pattern bhi common hai matrix-like data ke liye