首页 > 分享 > Python切片一文读懂: Python 切片操作的深层理解

Python切片一文读懂: Python 切片操作的深层理解

最新推荐文章于 2024-10-26 15:56:25 发布

夏侯依风 于 2021-06-20 21:38:27 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

文章目录 一、Python切片实例二、Python两套索引三、切片理解1. 切片基本逻辑2. 正、逆序不同之处 四、深层原理 一、Python切片实例

下面以字符串对象 str1 为例进行切片操作.

#!/usr/bin/env python3 # encoding:utf-8 str1 = '0123456789' print('str1:', str1) print('n正序...') print('{} {:<12s} {:<12s} {:<12s} {:<12s}'.format( 'i', 'str1[i:]', 'str1[:i]', 'str1[-i:]', 'str1[:-i]')) for i in range(len(str1)): result = '{} {:<12s} {:<12s} {:<12s} {:<12s}'.format( i, str1[i:], str1[:i], str1[-i:], str1[:-i]) print(result) print('n逆序...') print('{} {:<12s} {:<12s} {:<12s} {:<12s} {:<12s} {:<12s}'.format( 'i', 'str1[i::-1]', 'str1[:i:-1]', 'str1[-i::-1]', 'str1[:-i:-1]', 'str1[i:4:-1]', 'str1[0:i:-1]')) for i in range(len(str1)): result = '{} {:<12s} {:<12s} {:<12s} {:<12s} {:<12s} {:<12s}'.format( i, str1[i::-1], str1[:i:-1], str1[-i::-1], str1[:-i:-1], str1[i:4:-1], str1[0:i:-1]) print(result) ''' str1: 0123456789 正序... i str1[i:] str1[:i] str1[-i:] str1[:-i] 0 0123456789 0123456789 1 123456789 0 9 012345678 2 23456789 01 89 01234567 3 3456789 012 789 0123456 4 456789 0123 6789 012345 5 56789 01234 56789 01234 6 6789 012345 456789 0123 7 789 0123456 3456789 012 8 89 01234567 23456789 01 9 9 012345678 123456789 0 逆序... i str1[i::-1] str1[:i:-1] str1[-i::-1] str1[:-i:-1] str1[i:4:-1] str1[0:i:-1] 0 0 987654321 0 987654321 1 10 98765432 9876543210 2 210 9876543 876543210 9 3 3210 987654 76543210 98 4 43210 98765 6543210 987 5 543210 9876 543210 9876 5 6 6543210 987 43210 98765 65 7 76543210 98 3210 987654 765 8 876543210 9 210 9876543 8765 9 9876543210 10 98765432 98765 '''

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051' 二、Python两套索引

Python两套索引

三、切片理解 1. 切片基本逻辑

str1[start:stop:step]

序列索引从左往右以0开始,从右往左以-1开始,-0等于0.切片结果不包含stop索引对应的值.切片逻辑: 从start开始,以step为步长,到stop(不含)为止,step正负表截取的方向,正向右,负向左. 2. 正、逆序不同之处 正序:

str1[start=0 : stop=len(str) : step=1]

⚠️ 注意默认参数

执行理解: step为正时,从start开始,以step为步长,到stop(不含)为止,从左往右截取.3个参数都有默认值,步长step不能为0,三个参数可正可负.start元素的逻辑位置需在stop元素逻辑位置的左边,否则返回空列表.start 与 stop 位置与切片结果的关系:
Python切片(step>0) 逆序:

str1[start=-1 : stop=-len(str)-1 : step=-n]

⚠️ 注意默认参数

执行理解: step为负时,从start开始,以step为步长,到stop(不含)为止,从右往左截取.前2个参数有默认值,实参可正可负,步长step不能为-0.start元素的逻辑位置需在stop元素逻辑位置的右边,否则返回空列表.start 与 stop 位置与切片结果的关系:

Python切片(step</p> <a id=四、深层原理

(下面以列表 list 为例)
获取元素: 调用 list.__getitem__(i) 方法,相当于 list[] .

切片操作: 调用 list.__getitem__(slice(start, stop[, step])) 方法,相当于 list[start:stop:step] .

注:slice, 切片类.

附:slice类

>>> help(slice) Help on class slice in module builtins: class slice(object) | slice(stop) | slice(start, stop[, step]) | | Create a slice object. This is used for extended slicing (e.g. a[0:10:2]). 12345678

©2021 CherryChenNan
点赞支持,收藏学习,关注不迷路~

相关知识

利用Python进行数据分析(5) NumPy基础: ndarray索引和切片
python教程 列表list操作
Python学习手册
理解Python中列表/字典/元组/集合
5G网络切片技术解析,一文让你读懂5G切片
python中的数据类型篇
python基础课程系列(补充1)
快速入门Python:基础与实践
Python中is和==的区别详解
SKYNE/python

网址: Python切片一文读懂: Python 切片操作的深层理解 https://m.huajiangbk.com/newsview1479686.html

所属分类:花卉
上一篇: 【蔷薇花开摄影图片】生态摄影
下一篇: 芭乐水果,营养丰富,健康养生的绿