On 03/09/18 18:49, C W wrote:
Hello all,

I am learning the basics of Python. How do I know when a method modifies
the original object, when it does not. I have to exmaples:
Example 1:
L = [3, 6, 1,4]
L.reverse()
L
[4, 1, 6, 3]
This changes the original list.

Lists are mutable, i.e. can be changed, so it makes sense to do this change in place.


Example 2:
name = "John Smith"
name.replace("J", j")
name
'John Smith'
This does not change the original string.

Strings are immutable, i.e. cannot be changed, so you have to create a new string. Your call to `replace` will do just that, but as it's not saved `name` remains the same. You could use

name = name.replace("J", j") or

newname = name.replace("J", j") as you see fit.


Why the two examples produce different results? As a beginner, I find this
confusing. How do you do it?

Thank you!



--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to