Python3 辞書 copy()メソッド
説明
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]}
知識の拡張
その他の拡張
Python3 辞書