Python基础教程:切片的赋值

0 1 2 3 4 5 6 7 8 9

^

前面有4个元素

好用的切片

以上两个数学理论给切片使用带来了很多好处:

  • 当只有最后一个位置信息时,可以快速看出有几个元素,比如my_list[:3]返回3个元素。

  • 当起止位置信息都可见时,可以快速计算出长度,用stop - start就可以了,比如my_list[1:3]长度为2。

  • 利用任意一个下标把序列切割成不重叠的两部分,只要写成my_list[:x]和my_list[x:]就可以了,比如

my_list = [10, 20, 30, 40, 50, 60]

my_list[:3]

[10, 20, 30]

my_list[3:]

[40, 50, 60]

Python里的范围(range)也是忽略最后一个元素,下标从0开始的。

切片间隔

切片除了s[a:b],还有第三个下标s[a:b:c],意思是对s在a和b之间以c为间隔取值,c还可以为负,负值意味着反向取值。比如:

‘’’

Python学习交流,免费公开课,免费资料,

免费答疑,系统学习加QQ群:579817333

‘’’

s = “bicycle”

s[::3]

“bye”

s[::-1]

“elcycib”

s[::-2]

“eccb”

a:b:c更严谨的描述是start:stop:step。

语法如此简洁,用脚想也知道是Python魔法方法干的好事!在对s[a:b:c]进行求值的时候,Python实际上会调用s.__getitem__(slice(a, b, c)),熟悉的配方,熟悉的味道。slice(a, b, c)是a:b:c用在[]中返回的切片对象,slice()是Python内置函数,示例:

invoice = “Mini Kit $34.95 1 $ 34.95”

SKU = slice(0, 8)

print(invoice[SKU])

切片赋值

切片有一个强大功能是给切片赋值,如果把切片放在赋值语句的左边,或把它作为del操作的对象,我们就可以对序列进行嫁接、切除或就地修改操作。示例:

l = list(range(10))

l

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[5:7]

l

[0, 1, 2, 3, 4, 7, 8, 9]

l[3:2] = [11, 22]

l

[0, 1, 2, 11, 22, 3, 4, 7, 8, 9]

l[2:5] = [100]

l

[0, 1, 100, 3, 4, 7, 8, 9]

注意,如果赋值的对象是一个切片,那么赋值语句的右侧必须是个可迭代对象,即使只有单独一个值,否则会报错:

l[2:5] = 100

Traceback (most recent call last):

File “”, line 1, in

TypeError: can only assign an iterable

多维切片

除了一维切片,Python还支持多维切片,这在多维数组中能体现出来。NumPy是Python第三方库,提供了高阶数组,使得Python成为科学计算应用的主流语言。示例:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值