I am familiar with the String Immutability concept in Python that once a string is created, it cannot be changed or updated however, the variable can be reassigned a new value. But I want to know if I am thinking in the correct direction. Running functions like .upper(),.lower() on a string returns a new id because of string immutability? Also, if there is a list that has a string element for instance, Countries= ["USA","UK"], I can run Countries[0]="China" but if I run, Countries[0][0]="P", that returns 'str' does not support item assignment because of immutability? Why are we able to replace the element but cannot a character or it because of immutability? Continue reading...