V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
SolrJ
V2EX  ›  Python

python中字典的copy方法

  •  
  •   SolrJ · 2013-03-31 16:56:59 +08:00 · 3054 次点击
    这是一个创建于 4065 天前的主题,其中的信息可能已经有所发展或是发生改变。
    >>> x = {'username': 'admin', 'passwd': '000000', 'info': ['male', '10', 'more']
    }
    >>> y = x.copy()
    >>> y['username'] = 'administrator'
    >>> y['info'].remove('more')
    >>> y
    {'username': 'administrator', 'passwd': '000000', 'info': ['male', '10']}
    >>> x
    {'username': 'admin', 'passwd': '000000', 'info': ['male', '10']}
    使用copy方法复制了一个字典y。通过字典赋值,可以修改username的值,在y字典里可以看到修改,但是在x字典看不到。但是我删掉了info的一个值,在两个字典里都有体现。是不是复制字典y后,info的指向是原字典的list,但是username的指向在两个字典(x,y)里为什么不一样呢?
    7 条回复    1970-01-01 08:00:00 +08:00
    lookhi
        1
    lookhi  
       2013-03-31 17:00:35 +08:00
    info -> 是List

    8.17. copy — Shallow and deep copy operations
    KotiyaSanae
        2
    KotiyaSanae  
       2013-03-31 17:10:23 +08:00
    深复制和浅复制的问题,copy是浅复制。具体的忘了,大致就是,浅复制的对象只是深复制对象的一个引用。看看官方的说法吧
    KotiyaSanae
        3
    KotiyaSanae  
       2013-03-31 17:10:48 +08:00
    打错了,浅复制是对象的引用
    SolrJ
        4
    SolrJ  
    OP
       2013-03-31 17:13:57 +08:00
    @lookhi 也就是说对于复杂的对象,是通过一个指向原始字典的reference来操作的(对象中又包括对象),对于简单的,是通过复制的方式?
    SolrJ
        5
    SolrJ  
    OP
       2013-03-31 17:20:25 +08:00
    @KotiyaSanae 我认为username的字段在x和y里面都有一个,而y里面的info字段是指向x里的list的。这样理解是否可以?
    KotiyaSanae
        6
    KotiyaSanae  
       2013-03-31 17:24:03 +08:00
    @SolrJ 好像就只这样,看看这篇文章吧 http://blog.csdn.net/vicken520/article/details/8227524
    zhy0216
        7
    zhy0216  
       2013-03-31 17:24:59 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1210 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:28 · PVG 07:28 · LAX 16:28 · JFK 19:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.