Mutating methods in lists usually return None , not an unmodified list, as you would expect - such methods do their job by modifying the list in place rather than creating and returning a new one. Thus, print numbers instead of print clean will show you the changed list.
If you need to keep numbers intact, first make a copy, then you change the copy:
clean = list(numbers) clean.insert(3, 'four')
this has a general effect that you think is desirable: numbers does not change, clean is a changed list.
source share