Mutable vs Immutable Data Types
Python mein jab hum koi variable banate hain, toh wo memory (RAM) mein ek object ke roop mein
store hota hai. Python ke saare data types ko is baat par do bhaagon mein baanta gaya hai ki kya
hum unki value ko banne ke baad badal (modify) sakte hain ya nahi.
Mutable Data Types : Jinhe memory mein usi jagah (in-place) badla ja sake.
Immutable Data Types : Jinhe memory mein banne ke baad kabhi badla na ja sake.
1. Immutable Data Types
Immutable ka matlab hota hai jo badla na ja sake. Ek baar jab aap memory mein koi immutable object bana dete hain, toh uske andar ka data freeze ho jata hai.
Agar aap us variable ki value ko badalna chahenge, toh Python purani value ko nahi badlega. Wo memory mein ek ekdum naya object banayega aur aapke variable ko us naye address par bhej dega. Numbers (int, float, complex) , Strings , Booleans , Tuples aadi immutable data types hote hai
# ==========================================
# EXAMPLES OF IMMUTABLE DATA TYPES IN PYTHON
# ==========================================
# 1. Integer (int)
age = 25
print("1. Integer Type:", type(age), "Value:", age)
# 2. Float (float)
price = 99.99
print("2. Float Type:", type(price), "Value:", price)
# 3. String (str)
name = "Rahul"
print("3. String Type:", type(name), "Value:", name)
# 4. Boolean (bool)
is_coding = True
print("4. Boolean Type:", type(is_coding), "Value:", is_coding)
# 5. Tuple (tuple)
coordinates = (10.5, 20.8)
print("5. Tuple Type:", type(coordinates), "Value:", coordinates)
# -----------------------------------------------------------
# PROOF OF IMMUTABILITY (Inme se kisi ko badla nahi ja sakta)
# -----------------------------------------------------------
print("\n--- Try to modify an Immutable object ---")
# Try to modify String character
try:
name[0] = "K" # Error: Cannot change 'R' to 'K'
except TypeError as error:
print("String Error:", error)
# Try to modify Tuple item
try:
coordinates[0] = 50.5 # Error: Cannot change items in a tuple
except TypeError as error:
print("Tuple Error:", error)
1. Integer Type:Value: 25 2. Float Type: < class 'float' > Value: 99.99 3. String Type: < class 'str' > Value: Rahul 4. Boolean Type: < class 'bool' > Value: True 5. Tuple Type: < class 'tuple' > Value: (10.5, 20.8) --- Try to modify an Immutable object --- String Error: 'str' object does not support item assignment Tuple Error: 'tuple' object does not support item assignment
2. Mutable Data Types
Mutable ka matlab hota hai jise badla ja sake. In data types ke sath yeh sahuliyat hoti hai ki aap memory mein unka address badle bina, unke andar ki values ko jab chahein tab naya roop de sakte hain, jod sakte hain ya delete kar sakte hain. Lists , Dictionaries , Sets aadi immutable data types hote hai
# ==========================================
# EXAMPLES OF MUTABLE DATA TYPES IN PYTHON
# ==========================================
# 1. List (list)
numbers_list = [10, 20, 30]
print("1. Original List:", numbers_list)
# Modification: List ke item ko directly badal sakte hain
numbers_list[1] = 99
print(" Modified List:", numbers_list)
# 2. Dictionary (dict)
user_dict = {"name": "Amit", "age": 25}
print("\n2. Original Dictionary:", user_dict)
# Modification: Age ko badalna aur city ko naya jodna
user_dict["age"] = 26
user_dict["city"] = "Delhi"
print(" Modified Dictionary:", user_dict)
# 3. Set (set)
my_set = {1, 2, 3}
print("\n3. Original Set:", my_set)
# Modification: Set mein naya item add karna aur remove karna
my_set.add(5)
my_set.discard(2)
print(" Modified Set:", my_set)
1. Original List: [10, 20, 30]
Modified List: [10, 99, 30]
2. Original Dictionary: {'name': 'Amit', 'age': 25}
Modified Dictionary: {'name': 'Amit', 'age': 26, 'city': 'Delhi'}
3. Original Set: {1, 2, 3}
Modified Set: {1, 3, 5}
| Feature | Mutable Data Types | Immutable Data Types |
|---|---|---|
| Meaning | These data types can be changed or modified in-place after they are created. | These data types cannot be changed or modified once they are created. |
| Memory Behavior | Modifying the data does not create a new object; the memory address (ID) stays the same. | Modifying the data automatically creates a new object in memory, changing the address (ID). |
| Examples | List (list), Dictionary (dict), Set (set)
|
Integer (int), Float (float), String (str),
Tuple (tuple), Boolean (bool) |
| Speed & Performance | Since their size can change dynamically, their processing speed is slightly slower. | Since their size is fixed, they are highly optimized and access speed is very fast. |
| Dict Key Support | They cannot be used as a Key inside a Python Dictionary because their value can change. | They are perfect for use as a Dictionary Key because their value remains constant. |
Features of Mutable vs Immutable
1. Memory Efficiency : Immutable types (jaise strings) memory bachaate hain
kyunki ek hi value ko kai variables share kar sakte hain.Is feature ko Python mein 'Object
Interning' kaha jata hai.
2. Thread Safety : Immutable data types multi-threaded programming mein poori
tarah se safe hote hain.Inhe ek sath kai programs bina data corrupt kiye padh sakte hain.
3. Flexibility of Mutable : Mutable types badalte hue data (jaise shopping cart
items) ko handle karne ke liye best hain.Isme baar-baar naya object na banne se memory par faltu
ka load nahi padta.