Python3高级特性(一)之切片

简介: Python3高级特性(一)之切片

基本概念


切片操作符是列表名称后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。注意这与你使用的索引操作符十分相似。记住数字是可选的,而冒号是必须的。

注意:也可以用相同的方法访问元组和字符串。

我们先创建一个0-99的数列:

L = list(range(100))
复制代码

L为:[0, 1, 2, 3, ..., 99]

可以通过切片轻松取出某一段数列。

前10个数: L[:10]

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

前11-20个数: L[10:20]

[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

后10个数: L[-10:]

[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

切片操作符中的数字


第一个数(冒号之前)表示切片开始的位置,

第二个数(冒号之后)表示切片结束的位置,

第三个数(冒号之后)表示切片间隔数。

如果不指定第一个数,Python就从序列首开始。

如果没有指定第二个数,则Python会停止在序列尾。

注意,返回的序列从开始位置开始 ,刚好在结束位置之前结束。

即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。

【左开有闭】

例如:

列表:shoplist=[0,1,2,3,4,5,6,7,8],shoplist[1:3]返回:

从位置1开始,包括位置2,但是停止在位置3的一个序列切片,因此返回一个含有两个项目的切片。shoplist[:]返回:整个序列的拷贝。

shoplist[::3]返回:位置3,位置6,位置9…的序列切片。

切片操作符中的负数


负数用在从序列尾开始计算的位置。

shoplist[:-1]返回:除了最后一个项目外包含所有项目的序列切片,

shoplist[::-1]返回:倒序序列切片。

元组的切片操作


tuple也是一种list,唯一区别是tuple不可变。

因此,tuple也可以用切片操作,只是操作的结果仍是tuple:

(0, 1, 2, 3, 4, 5)[:3]
复制代码

结果为:(0, 1, 2)

字符串的切片操作


字符串'xxx'也可以看成是一种list,每个元素就是一个字符。

因此,字符串也可以用切片操作,只是操作结果仍是字符串:

'ABCDEFG'[:3]
复制代码

结果为:'ABC'

'ABCDEFG'[::2]
复制代码

结果为:'ACEG'

在很多编程语言中:

针对字符串提供了很多各种截取函数(例如,substring),其实目的就是对字符串切片。

Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。


作者:zhulin1028

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章
|
4月前
|
BI 测试技术 索引
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-1
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
7天前
|
数据处理 Python
Python切片魔法:一行代码实现高效数据处理
Python切片魔法:一行代码实现高效数据处理
11 0
|
2月前
|
数据处理 索引 Python
Python 中的切片
【8月更文挑战第29天】
19 4
|
2月前
|
机器学习/深度学习 数据可视化 API
Python Numpy 切片和索引(高级索引、布尔索引、花式索引)
Python Numpy 切片和索引(高级索引、布尔索引、花式索引)
37 3
|
5月前
|
Python
python元组切片
python元组切片
136 3
|
4月前
|
Python
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
|
5月前
|
SQL 分布式计算 算法
2024年最新【Python】列表元素的 删除 操作(remove()、pop()、切片,2024年最新Python社招面试题
2024年最新【Python】列表元素的 删除 操作(remove()、pop()、切片,2024年最新Python社招面试题
2024年最新【Python】列表元素的 删除 操作(remove()、pop()、切片,2024年最新Python社招面试题
|
5月前
|
存储 索引 Python
Python数据容器的切片操作详解
Python数据容器的切片操作详解
35 1
|
5月前
|
Python
深入 Python 套接字编程:高级特性与并发处理
【5月更文挑战第18天】本文探讨了Python套接字编程的高级特性,包括非阻塞套接字、超时设置和端口复用,以及并发处理方法:多线程、多进程和异步I/O(如`asyncio`)。通过示例展示了多线程服务器如何处理客户端连接。同时强调并发处理时需注意资源竞争和同步,并合理配置线程数。学习这些技能将有助于构建高效、灵活的网络应用,应对不断发展的技术挑战。
65 10
|
4月前
|
存储 API C语言
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-2
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
下一篇
无影云桌面