為什麼需要copy?

b=a ,將a賦值給b
一般人會以為已經copy了一份
實際上a, b兩變數共享同一個內存地址
b一旦變更
會影響到a也一起變更
上例 a = [1, 2, 3]
b = a.copy() #對a進行淺拷貝:

b.append(4)
對b進行了變更
a仍是原本的[1, 2, 3]
沒有影響到
a = [[1, 2, 3], {‘a’: 1, ‘b’: 2}]
a為一個list
list中的元素有list, dict
而非 整數,浮點數,字串 (不可變類型)
一樣做淺拷貝的動作:

對b[0]做了變更
一併影響到a
這時候就需要使用深拷貝(deep copy)
b = copy.deepcopy(a)

推薦hahow線上學習python: https://igrape.net/30afN
![Python 如何做excel的樞紐分析? pandas.DataFrame.groupby() ; .agg( {column name: function name} ) ; 如何讀取多層index的xlsx檔案? df = pandas.read_excel (fpath, index_col =[0,1]) ; 如何顯示所有欄? pd.set_option ( “display.max_columns”, None) Python 如何做excel的樞紐分析? pandas.DataFrame.groupby() ; .agg( {column name: function name} ) ; 如何讀取多層index的xlsx檔案? df = pandas.read_excel (fpath, index_col =[0,1]) ; 如何顯示所有欄? pd.set_option ( “display.max_columns”, None)](https://i1.wp.com/savingking.com.tw/wp-content/uploads/2023/03/20230321113121_64.png?quality=90&zoom=2&ssl=1&resize=350%2C233)

![Python: matplotlib如何控制legend的位置? ax.legend(handles=[patch], loc=’upper left’, bbox_to_anchor=(6/10, 3/5) Python: matplotlib如何控制legend的位置? ax.legend(handles=[patch], loc=’upper left’, bbox_to_anchor=(6/10, 3/5)](https://i2.wp.com/savingking.com.tw/wp-content/uploads/2023/05/20230502163945_79.png?quality=90&zoom=2&ssl=1&resize=350%2C233)







近期留言