Explain the difference between a list and a tuple in Python, including their key characteristics and when you would use one over the other (5 marks)