Python3 辞書 copy()メソッド

Python3 字典Python3 辞書


説明

Python 辞書の copy() 関数は、辞書の浅いコピーを返します。

構文

copy() メソッドの構文:

dict.copy()

パラメータ

  • NA。

戻り値

辞書の浅いコピーを返します。

例

以下の例は、copy() 関数の使用方法を示しています:

例

#!/usr/bin/python3 dict1 = {'Name': 'サンプル', 'Age': 7, 'Class': 'First'} dict2 = dict1.copy() print ("新しくコピーされた辞書は次のとおりです :",dict2)

上記の例の出力結果は次のとおりです:

新复制的字典为 :  {'Age': 7, 'Name': 'サンプル', 'Class': 'First'}

直接代入と copy の違い

以下の例で説明できます:

例

#!/usr/bin/python # -*- coding: UTF-8 -*- dict1 = {'user':'サンプル','num':[1,2,3]} dict2 = dict1 # 浅いコピー: オブジェクトの参照 dict3 = dict1.copy() # 浅いコピー:親オブジェクト(第1レベル)を深くコピーし、子オブジェクト(第2レベル)はコピーせず、子オブジェクトは参照 # data データを変更 dict1['user']='root' dict1['num'].remove(1) # 出力結果 print(dict1) print(dict2) print(dict3)

この例の中で dict2 は実際には dict1 の参照(エイリアス)であるため、出力結果はすべて同じになります。dict3 の親オブジェクトは深いコピーが行われるため、dict1 の変更に伴って変更されることはありませんが、子オブジェクトは浅いコピーであるため、dict1 の変更に伴って変更されます。

{'user': 'root', 'num': [2, 3]}
{'user': 'root', 'num': [2, 3]}
{'user': 'サンプル', 'num': [2, 3]}

知識の拡張

Python の直接代入、浅いコピー、深いコピーの解析


Python3 字典Python3 辞書

その他の拡張