Interview question
What is the difference between deep copy and shallow copy in Python? Python में deep copy और shallow copy में क्या अंतर है?
Answer
| Type | Behavior |
|---|---|
| Shallow copy | Copies the outer object; nested objects are still shared references |
| Deep copy | Recursively copies everything; nested objects are fully independent |
import copy
original = [[1, 2], [3, 4]]
# Shallow copy - outer list is new, but inner lists are SHARED
shallow = copy.copy(original)
shallow[0].append(99)
print(original) # [[1, 2, 99], [3, 4]] - original affected too!
# Deep copy - fully independent
original2 = [[1, 2], [3, 4]]
deep = copy.deepcopy(original2)
deep[0].append(99)
print(original2) # [[1, 2], [3, 4]] - original untouched
# list.copy() and slicing also do SHALLOW copies
shallow2 = original2.copy() # or original2[:]
shallow2[0].append(100)
print(original2) # affected - same nested reference| Type | व्यवहार |
|---|---|
| Shallow copy | Outer object copy होता है; nested objects shared रहते हैं |
| Deep copy | सब कुछ recursively copy होता है; पूरी तरह independent |
import copy
original = [[1, 2], [3, 4]]
# Shallow copy
shallow = copy.copy(original)
shallow[0].append(99)
print(original) # [[1, 2, 99], [3, 4]] - original भी बदला!
# Deep copy
original2 = [[1, 2], [3, 4]]
deep = copy.deepcopy(original2)
deep[0].append(99)
print(original2) # [[1, 2], [3, 4]] - original नहीं बदला
# list.copy() भी shallow copy है
shallow2 = original2.copy()
shallow2[0].append(100)
print(original2) # बदल जाएगाWas this answer clear?