Python 辞書(Dictionary) copy()メソッド

Python 字典Python 辞書


説明

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

構文

copy() メソッドの構文:

dict.copy()

パラメータ

  • NA。

戻り値

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

実例

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

実例

#!/usr/bin/python dict1 = {'Name': 'Zara', 'Age': 7}; dict2 = dict1.copy() print "New Dictinary : %s" % str(dict2)

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

New Dictinary : {'Age': 7, 'Name': 'Zara'}

直接代入と 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 の変更に伴って変更されます。

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

知識の補足

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



Python 字典Python 辞書

その他の拡張