什么是原地操作?先來看看一個例子

列表l在使用append方法添加了一個元素后,沒有產生副本,再次打印l時多了一個元素5,這個append就是原地操作的方法,由此可見原地操作具有以下特性:
1.不產生返回值(返回值為None)
2.改變作用對象(不會產生副本)
因此不可變對象沒有原地操作(不符合2),但是可變的數據類型(如列表,字典等)的方法就一定是原地操作嗎?

如圖所示,pop和popitem方法的使用對象是可變的數據類型,但是由於返回的不是None,因此不是原地操作,在來看看不可變對象字符串的情況

upper方法返回了一個副本,但是原來的s並沒有改變,因此不是原地操作
