最近のトラックバック

最近のコメント

2017年3月
      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  
無料ブログはココログ

« リスト(シーケンス、文字列)を一文字毎の配列に変換 | トップページ | 二次元配列のコピー(解決というか確認) »

2016年12月19日 (月)

二次元配列のコピーで、あれ?

# 言わずもがなの例
>>> a=[1,2,3]
>>> b=a
>>> a[0]=2
>>> b
[2, 2, 3]
>>> b=a[:]
>>> a[0]=4
>>> b
[2, 2, 3]
# だけど、試しに二次元配列にして
>>> a=[[1,2,3],[4,5,6]]
>>> a
[[1, 2, 3], [4, 5, 6]]
>>> b=a
>>> b
[[1, 2, 3], [4, 5, 6]]
>>> a[0][0]=2
>>> a
[[2, 2, 3], [4, 5, 6]]
>>> b
[[2, 2, 3], [4, 5, 6]]
# これは当然
# んで、
>>> b=a[:]
>>> b
[[2, 2, 3], [4, 5, 6]]
>>> a
[[2, 2, 3], [4, 5, 6]]
>>> a[0][0]=4
>>> a
[[4, 2, 3], [4, 5, 6]]
>>> b
[[4, 2, 3], [4, 5, 6]]
# あれ?
# じゃ、試しに
>>> b=a[:][:]
>>> a[0][0]=6
>>> a
[[6, 2, 3], [4, 5, 6]]
>>> b
[[6, 2, 3], [4, 5, 6]]
# これもだめ

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

に該当するのかな。

« リスト(シーケンス、文字列)を一文字毎の配列に変換 | トップページ | 二次元配列のコピー(解決というか確認) »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/181317/64647664

この記事へのトラックバック一覧です: 二次元配列のコピーで、あれ?:

« リスト(シーケンス、文字列)を一文字毎の配列に変換 | トップページ | 二次元配列のコピー(解決というか確認) »