Python - 辞書を複製する

辞書の複製: copy()

辞書の複製には、参照渡し/浅いコピー (Shallow Copy)値渡し/深いコピー (Deep Copy) の2種類があります。以下のように単純に代入するだけでは参照渡し/浅いコピーとなります。

dict1 = {'key1': 'value1'}

dict2 = dict1
dict2['key1'] = '100'

print(dict1)
# {'key1': '100'}

print(dict2)
# {'key1': '100'}
参照渡し/浅いコピー (Shallow Copy)

コピーした辞書を別々の辞書として扱うためには、copy モジュールを利用します。copy モジュールによってコピーされた辞書は、値渡し/深いコピーとなります。

import copy

dict1 = {'key1': 'value1'}

dict2 = copy.copy(dict1)
dict2['key1'] = '100'

print(dict1)
# {'key1': 'value1'}

print(dict2)
# {'key1': '100'}
値渡し/深いコピー (Deep Copy)

辞書の複製: fromkeys()

fromkeys() 関数は、辞書のキーだけをコピーしたい場合に使用します。

dict1 = {'key1': 'value1'}

dict2 = dict.fromkeys(dict1)
print(dict2)
# {'key1': None}

dict3 = dict.fromkeys(dict1, 0)
print(dict3)
# {'key1': 0}
辞書の複製: fromkeys()

関連記事

Category:
プログラミング
公開日:
更新日:
Pageviews:
14
Shares:
0
Tag:
Python
コードレシピ