python 辞書(連想配列)の値をコピーする
pythonで、辞書(連想配列)の値をコピーするサンプルコードを記述してます。コピーの仕方は、参照渡し(浅いコピー)と値渡し(深いコピー)があります。
環境
- OS windows10 pro 64bit
- python 3.7.6
コピー
参照渡し(浅いコピー)でコピーした場合は、コピー元の値を変わってしまいます。
d1 = {'x': 10, 'y': 20}
d2 = d1
# d1の値を編集する
d1['x'] = '100'
print(d1)
# {'x': '100', 'y': 20}
print(d2)
# {'x': '100', 'y': 20}
値渡し(深いコピー)にしたい場合は、「copy」をimportして使用します。
import copy
d1 = {'x': 10, 'y': 20}
d2 = copy.copy(d1)
# d1の値を編集する
d1['x'] = '100'
print(d1)
# {'x': '100', 'y': 20}
print(d2)
# {'x': 10, 'y': 20}
多次元でも、コピーされます。
import copy
d1 = {'x': {'z': 100}, 'y': 20}
d2 = copy.copy(d1)
print(d1)
# {'x': {'z': 100}, 'y': 20}
print(d2)
# {'x': {'z': 100}, 'y': 20}
また、dict.fromkeysを使用して、キーだけをコピーすることも可能です。
d1 = {'x': 10, 'y': 20}
d2 = dict.fromkeys(d1)
print(d1)
# {'x': '10', 'y': 20}
print(d2)
# {'x': None, 'y': None}
値を指定することも可能です。
d1 = {'x': 10, 'y': 20}
d2 = dict.fromkeys(d1,100)
print(d1)
# {'x': '10', 'y': 20}
print(d2)
# {'x': 100, 'y': 100}
-
前の記事
C# pictureBoxで表示されている画像を切り替える 2020.11.26
-
次の記事
Ruby 小数点が含まれている文字列を数値に変換する 2020.11.26
コメントを書く