"Describe the difference between shallow copy and deep copy in Python, and explain when you would use each."