開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- プログラミング言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIV部(関数)のまとめ演習5.(ディクショナリのコピー)を解いてみる。
その他参考書籍
5.(ディクショナリのコピー)
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import copy # トップレベルのみ def copyDict(d): res = {} for k, v in d.items(): res[k] = v return res d1 = {'a':1,'b':2} d2 = copyDict(d1) d3 = d1.copy() print(d1, d2, d3, sep="\n") # トップレベルのみのコピー(copyDict関数、あるいはディクショナリのcopy)と # copyモジュールのdeepcopyを使った場合(ネストされたのまでコピー)の違いを確認 d4 = {'a':{'b':1},'c':2} d5 = copyDict(d4) d6 = d4.copy() d7 = copy.deepcopy(d4) print(d4, d5, d6, d7, sep="\n") d4['a']['b'] = 100 print(d4, d5, d6, d7, sep="\n")
入出力結果(Terminal)
$ ./sample.py {'b': 2, 'a': 1} {'b': 2, 'a': 1} {'b': 2, 'a': 1} {'c': 2, 'a': {'b': 1}} {'c': 2, 'a': {'b': 1}} {'c': 2, 'a': {'b': 1}} {'c': 2, 'a': {'b': 1}} {'c': 2, 'a': {'b': 100}} {'c': 2, 'a': {'b': 100}} {'c': 2, 'a': {'b': 100}} {'c': 2, 'a': {'b': 1}} $
0 コメント:
コメントを投稿