Explain the difference between a list and a tuple in Python, and when you would choose one over the other.