Sets
Set () se nahi, {} ya set() se banta hai — sirf UNIQUE values rakhta hai, duplicates automatically ignore hote hain. Order guaranteed nahi hai (list/tuple ke ulat). Membership check (x in set) bahut fast hai (O(1) average), list se (O(n)) kaafi behtar.
Sets mathematical set operations support karte hain: union (|), intersection (&), difference (-) — ye bahut useful hote hain jab do collections compare karne hon (jaise common elements dhundna).
fruits = {"apple", "banana", "apple", "cherry"} # duplicate 'apple' ignore hoga
print(fruits) # {'apple', 'banana', 'cherry'} — order guaranteed nahi
a = {1, 2, 3}
b = {2, 3, 4}
print(a | b) # {1, 2, 3, 4} — union
print(a & b) # {2, 3} — intersection (common)
print(a - b) # {1} — difference (a mein hai, b mein nahi)
print(3 in a) # True — bahut fast check- {}/set() se banta hai, sirf unique values
- |, &, - = union, intersection, difference
- Membership check (in) bahut fast — O(1) average
frozenset() ek immutable version hai set ka — jaise tuple, list ka immutable version hai. Isse dictionary key ya doosre set ke element ke roop mein use kar sakte ho (normal set nahi kar sakta, kyunki mutable hai).
normal_set = {1, 2, 3}
frozen = frozenset([1, 2, 3])
# normal_set ko dict key nahi bana sakte (mutable, unhashable)
d = {frozen: "immutable set as key"} # ye valid hai
print(d[frozen])List comprehensions jaisa hi syntax, sets ke liye — {} ke saath, automatically duplicates handle ho jaate hain.
numbers = [1, 2, 2, 3, 3, 3, 4]
unique_squares = {x ** 2 for x in numbers}
print(unique_squares) # {1, 4, 9, 16} — duplicates automatically gone