python3.6:学会两行代码,深刻理解列表

一码友问我两行代码如何执行的,看似挺简单,但涉及的知识点还挺多,值得细细分析,所以和大家分享。这两行代码为:

a = [0, 1, 2, 3, 4, 5]
a[0:3],a[5]=[[2,3,4,5],7] #重点介绍这句程序

执行完毕上面两行程序之后,大家猜猜,a的结果是多少?

正确答案为:

[2, 3, 4, 5, 3, 7, 5]

不知道聪明的你答对了没。

我给大家分析下:要想理解a[0:3],a[5]=[[2, 3, 4, 5], 7]关键我们要熟知列表的解包、列表的可变性、列表切片、使用索引获取列表值等知识点。

为了更容易理解,我们先将其转换为:

a, b = [[2, 3, 4, 5], 7]

如果还不容易理解,可以再简化为:

a, b = [2, 7]

我们将嵌套列表中的第一个列表元素用2来代替,这样就简单多了。只分析上面这个,如果聪明的你看书认真的话一定听说过列表解包(unpack),什么意思呢?就是2,赋值给a;7赋值给b.

一般来说左边的变量个数要和右边列表的元素(这里的元素可以是列表、元祖、字符串、数字、以及他们的嵌套组合)个数相同。如果不相同就会报错:


这什么错误呢?python给出的错误提示是太多的值要解包(预期2个),通俗讲就是列表中要解包的值是3个,只给出了两个变量来接收,变量少了。

理解了解包,我们容易知道执行

a, b = [[2, 3, 4, 5], 7]

后,a的值为[2, 3, 4, 5];b的值为7。

我们继续往需要理解的代码语句上靠:

a[0:3],a[5]=[[2,3,4,5],7]
等号右边将两个元素解包给a[0:3],a[5],其中a[0:3]是可以理解为利用切片工具指向了列表
[0, 1, 2, 3, 4, 5]

中的[0, 1, 2]几个元素,如果用[2, 3, 4, 5]赋值给a[0:3],可以更新[0, 1, 2]这几个元素,


执行完①后,a列表为[2, 3, 4, 5, 3, 4, 5]。

下面继续执行②,将7赋值给a[5],也就是将[2, 3, 4, 5, 3, 4, 5]中的第6个元素更新为7。至此,语句执行完毕,列表a最后为:

[2, 3, 4, 5, 3, 7, 5]。运行结果如下图:

总结下,这两个语句看似简单,但蕴含了大量的知识点,这也体现了python的简介的特点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值