前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编程一定要注意的那些“坑”(八):赋值运算符=

Python编程一定要注意的那些“坑”(八):赋值运算符=

作者头像
Python小屋屋主
发布2018-04-16 15:49:43
4630
发布2018-04-16 15:49:43
举报
文章被收录于专栏:Python小屋Python小屋

原始问题:下面的代码执行后为什么x的值是[2, 2]呢?

>>> x = [3, 5, 7]

>>> x = x[1:] = [2]

>>> x

[2, 2]

进一步,我们修改x列表的初始内容,会发现不管x的初始值是什么,执行x = x[1:] = [2]之后的x的值都是[2, 2]:

>>> x = [1, 2, 3, 3, 4, 5, 6]

>>> x = x[1:] = [2]

>>> x

[2, 2]

接下来我们重启Python shell,然后执行下面的代码:

>>> x = x[1:] = [2]

>>> x

[2, 2]

>>> del x

>>> x

Traceback (most recent call last):

File "<pyshell#49>", line 1, in <module>

x

NameError: name 'x' is not defined

>>> x = x[1:] = [2]

>>> x

[2, 2]

实际上这里有个小坑,这个问题的根源在于x = [1:] = [2]相当于x = [2]和x[1:] = [2]这两条语句,也就是说先创建列表x的值为[2],然后使用切片为其追加一个元素2,然后得到[2, 2]。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档