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
lts9165
V2EX  ›  Python

请教一个python赋值语句的问题

  •  
  •   lts9165 · 2013-10-08 22:55:40 +08:00 · 3282 次点击
    这是一个创建于 4051 天前的主题,其中的信息可能已经有所发展或是发生改变。
    l = [1, 2, 3]
    a = [4]
    l[:] = a
    print l

    如上语句中, l[:] = a这句,算是什么类型的赋值呢?
    l[:]是个列表,如果这算是列表解包赋值,那右边的a又和l[:]的长度不一致
    求好心人指点迷津~~
    8 条回复    1970-01-01 08:00:00 +08:00
    hanai
        1
    hanai  
       2013-10-08 23:03:13 +08:00   ❤️ 1
    hanai
        2
    hanai  
       2013-10-08 23:12:55 +08:00
    呃,错了。
    lts9165
        3
    lts9165  
    OP
       2013-10-08 23:20:22 +08:00
    @hanai 恩,好像确实有问题,l[:]和l确实是不同的对象,可是为什么能够直接给l[:]赋值呢
    lts9165
        4
    lts9165  
    OP
       2013-10-08 23:22:30 +08:00
    @hanai 我还试了[l[0],l[1],l[2]]=a 这样的赋值,就说a只有一个值,解不了
    vmebeh
        5
    vmebeh  
       2013-10-08 23:29:59 +08:00
    >>> i[:]==i
    True
    farseerfc
        6
    farseerfc  
       2013-10-08 23:31:15 +08:00   ❤️ 3
    區別用以下例子可以說清楚:
    >>> l = [1,2,3]
    >>> r = l
    >>> a = [4]
    >>> l
    [1, 2, 3]
    >>> r
    [1, 2, 3]
    >>> a
    [4]
    >>> l[:]=a
    >>> l
    [4]
    >>> r
    [4]
    >>> l = [1,2,3]
    >>> r = l
    >>> a = [4]
    >>> l = a
    >>> l
    [4]
    >>> r
    [1, 2, 3]
    >>> l = [1,2,3]
    >>> l[1:3] = a
    >>> l
    [1, 4]

    針對區段的賦值是可以替換整個區段的。
    lts9165
        7
    lts9165  
    OP
       2013-10-08 23:49:19 +08:00 via Android
    @farseerfc 哦!明白了!多谢~
    roricon
        8
    roricon  
       2013-10-09 10:51:50 +08:00
    我擦还能这么写,又学到了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.