Python中的切片

本文介绍了Python中的切片操作,详细阐述了切片的完整格式,并提供了实用的Tips,包括在列表和元组中进行切片、插入、替换和删除元素的方法。还探讨了如何在自定义对象中实现切片功能,强调了`__getitem__`方法的重要性。
摘要由CSDN通过智能技术生成

Python中的切片



前言

一直想把Python切片的知识总结,但拖延至今方才摁键。起因是室友接受了导师给的课题,机器学习相关,之前他一直实习Java,现在要学Python了。有一天他发信息问我关于切片的问题,我竟不能十分肯定的回答。惭愧!但不得不说,Python切片中的Tips是我之前不曾见过,也自然不曾使用的,今日就着外面世界的烟火炮竹,把眼界大开。

切片

切片的完整格式:[start:end:step],通常我们只用到startend

这里引用Bobby老师的一段话,对切片格式简单介绍:

其中,第一个数字start表示切片开始位置,默认0;
第二个数字end表示切片截止(但不包含)位置(默认为列表长度);
第三个数字step表示切片的步长(默认为1)。
当start为0时可以省略,当end为列表长度时可以省略,
当step为1时可以省略,并且省略步长时可以同时省略最后一个冒号。
另外,当step为负整数时,表示反向切片,这时start应该比end的值大才行。

如果存在一个列表lyst = [1, 2, 3, 4],那么lyst[2:4]的值为**[3, 4]**。对Python来说,切片并非列表专利,元组也可以做切片操作:

In [0]: tuple_ = (1, 2, 3, 4)

In [1]: tuple_[2:4]
Out[1]: (3, 4)

可看到一个现象,列表的切片类型是列表,元组的切片类型还是元组。

关于切片的一些常见使用如下:

In [0]: lyst = [1, 2, 3, 4]

In [1]: lyst[::]
Out[1]: [1, 2, 3, 4]

In [2]: lyst[::-1]  # 反向序列
Out[2]: [4, 3, 2, 1]

In [3]: lyst[::2]  # 等同“lyst[0::2]”。从索引0开始,每间隔一个元素取一个值。
Out[3]: [1, 3]

In [4]: lyst[1::2]  # 从索引1开始,每间隔一个元素取一个值。
Out[4]: [2, 4]

In [5]: lyst[1
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值