スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



  

Pythonの値渡し

Pythonの代入は間違えやすいのでメモしておく。
※他の言語と切り替えながら開発している人は要注意。



Pythonの代入は基本参照渡しになってしまうため、
そのまま代入を行うと必ず参照渡しになります。
ex)
>>>a=[1,2,3]
>>>b=a
>>>a.remove(3)
>>>a
[1,2]
>>>b
[1,2]

上記のように参照渡しではなく、中身を複製したい場合に下記3種類の方法で複製することができます。
ex)
>>>a=[{“key”: 1}]
>>>b=list(a)

>>>b=a[:]

>>>from copy import copy
>>>b=copy(a)

ただしリストの中身が辞書型のように参照先のあるオブジェクトの場合、上記方法ではリスト自体はコピーできますが、中身の辞書型の参照先ごと渡されるため辞書型の中身は参照渡しのままになります。

辞書型の中身ごと複製したい場合は、copyモジュールのdeepcopy関数を使用します。
>>>a=[{“key1”: 1},{“key2”: 2}]
>>>from copy import deepcopy
>>>b=deepcopy(a)
関連記事
スポンサーサイト



  

コメント

非公開コメント

検索フォーム
プロフィール

サトリヒロシ

Author:サトリヒロシ
ビジネスを重視した企画を支援したいエンジニアが、何かを書こうとするブログです。

サトリ潜伏先
サトリ倉庫

WEB関連の技術で調査リクエストがあればご連絡ください。

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
カテゴリ
最新記事
最新コメント
最新トラックバック
月別アーカイブ
RSSリンクの表示
リンク
QRコード
QRコード
FC2カウンター
スポンサードリンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。