在列表中有一种操作叫做分片

一般形式:

l2=[4,6,1,7,9]

e = l2[2:4]

print(e)

该代码运行结果如下:[1, 7]

从下标来看可以很容易的知道下标二对应的正好是元素3,值1

但是,却没有下标4的元素5,值9

所以,我们得出一个结论:

Python的分片操作含左不含右

操作范围[m,n]—>实际范围[m,n-1]

假定有一个list

l = [3,4,5,1,7]

如果我们想要取出其中的元素3,5,7呢?

这里涉及到了分片操作中的步长参数

形式如下:

l[2:4:1]

分片中的1就是步长参数

整体表示从下标2开始取出,每次+1,到下标3停止

eg

l2=[4,6,1,7,9]

e = l2[2:5:1]

print(e)

输出结果:[1,7,9],同时证明了:

分片操作的默认步长参数是1

从上面的实例中我们不难看出分片操作默认的步长参数是正数 ,那我们的步长参数是否可以为负数呢?同理我们的下标是否可以为负呢?

一.下标为负

l4 = [3,5,1,6,2]

e4 = l4[-4:-2]

print(e4)

输出结果为:[5,1]

这时,我们需要普及一个知识:

当下标为负时,列表最后一个元素的下标是-1

即:2的下标是-1,并且和下标为正时一样,越往右边下标值越大,所以下标为负时,最大下标为-1(注意,当步长为正数时,分片操作的起始下标必须小于终止下标,可以理解为逐渐加上正数的步长的话下标是从左往右增大的)

数组l4中元素对应的下标分别是3 --> -5 , 5 --> -4 , 1 --> -3 , 6 --> -2 , 2 --> -1

但是,通过l4的实例输出,我们又可以看到,输出顺序仍然是[5,1],从左往右输出

这时,就和分片操作的默认步长有关了

我们在上述中说到了分片操作的默认为1,所以易得遇到下标-4,取出-4的元素,然后-4+1进行偏移,取出下标-3的元素,通过**[m,n]–>[m,n-1]**,可知-2-1 == -3,所以下标到-3即停止,最终取出的是下标为-4和-3的元素

那么,如果我们想要分片操作从右往左执行呢?

上面提到,分片操作默认的步长是1,从左往右执行,那如果步长为-1,是不是就从右往左执行了呢

l5=[4,5,7,1,9]

e5 = l5[-2:-4:-1]

print(e5)

输出结果:[1,7]

在上面我们提到过,步长为正数时,分片起始下标必须小于终止下标,但是当步长为负数时,分片起始下标必须大于分片终止下标(不然返回空列表)

python分片的步长_Python的分片操作相关推荐

  1. python 流写入文件_python文件流操作

    博主在学习python时对文件进行操作时经常踩一下坑.所以专门梳理了一下.有问题麻烦指出哈. python对于文件的操作我们一般是用open().我们根据python的源码可以看出.我们必须要传的参是 ...

  2. 如何用python实现自动化办公_python自动化办公操作PPT的实现

    1.python-pptx模块简介 使用python操作PPT,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍.这里提前做一个说明:python操作PPT,最好是我们提前设计 ...

  3. python文件读写r+_python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)

    一.常用 'r':只读.该文件必须已存在. 'r+':可读可写.该文件必须已存在,写为追加在文件内容末尾. 'rb':表示以二进制方式读取文件.该文件必须已存在. 'w':只写.打开即默认创建一个新文 ...

  4. python生成数据库指令_Python学习—数据库操作

    python2中操作数据库:MySQLdb python3中操作数据库:pymysql python接连数据库 1.创建数据库连接: mysql.connect()函数 2.执行数据库操作: 执行数据 ...

  5. python函数做菜单_PYTHON图形化操作界面的编程七__创建菜单

    PYTHON图形化操作界面的编程七__创建菜单 十八.创建菜单 1.水平菜单的创建 创建菜单需要多条语句,所以这里通过实例来说明水平菜单的创建方法: 下面的语句可以在窗口中添加水平菜单,其中前四行语句 ...

  6. python获取数据库列名_python sqlite3 查询操作及获取对应查询结果的列名

    记录查询操作及获取查询结果列字段的方法 1.sqlite3 中获取所有表名及各表字段名的操作方法 SQLite 数据库中有一个特殊的表叫 sqlite_master,sqlite_master 的结构 ...

  7. python连接es数据库_Python Elasticsearch API操作ES集群

    环境Centos 7.4 Python 2.7 Pip 2.7 MySQL-python 1.2.5 Elasticsearc 6.3.1 Elasitcsearch6.3.2 知识点调用Python ...

  8. python遍历文件对象_Python文件常见操作实例分析【读写、遍历】

    本文实例讲述了Python文件常见操作.分享给大家供大家参考,具体如下: 1.文件是什么? 文件是存储在外部介质上的数据或信息集合,程序中源程序.数据中保存的数据.图像中的像素数据等等: 文件是有序的 ...

  9. python实现文件管理系统_Python使用文件操作实现一个XX信息管理系统的示例

    大家好,我是第一次python学了一个学期,期末要完成一个毕业生信息管理系统大作业的小韩了,由于上次没有仔细看开发实现的要求,实现了一个简单的毕业生信息管理系统,而这次专门整理了两种使用文件进行保存数 ...

最新文章

  1. 【Docker】Docker的三大核心组件
  2. python做社会网络分析_社交网络分析(Social Network Analysis in Python)①
  3. 10行Python代码自动清理电脑内重复文件
  4. iptables基础篇
  5. 了解活动目录操作主机角色及GUI命令行查看方法
  6. python rename dataframe,python rename dataframe_python – 重命名Pandas DataFra
  7. radar(nyoj287贪心)
  8. 全面认识openstack:OpenStack架构详解
  9. 基于大数据的软件智能化开发方法与环境
  10. 1口百兆光纤收发器工业导轨式发送机接收机1百兆光1百兆电工业以太网光纤收发器
  11. fleck 客户端_Fleck - 又一个灵感之源 #iPhone
  12. java数字转罗马数字
  13. 1-系统C盘迁移到新买的固态硬盘SSD中有影响但不主要,但有必要将系统盘C盘迁移到新安装的 固态硬盘SSD中吗?
  14. Decal的另类用法
  15. 美国队长的工资 python代码-详解用Python练习画个美队盾牌
  16. android实现截图功能
  17. 0x000001b8指令引用的0x000001b8内存该内存不能为read
  18. 全世界205个国家和地区奥委会全部参加北京奥运
  19. python能做射击类游戏吗_python能做游戏吗
  20. 菲律宾外汇储备降至两年来的最低水平

热门文章

  1. ios 获取固件版本_觉得iOS测试版本BUG太多?系统降级试一试?
  2. vc6 设置静态文本框透明_微信还能这么玩?半透明的微信背景主题用起来!
  3. 复合赋值位运算符“&=、| =”
  4. 让Python输出更漂亮
  5. C语言keywordstatic的绝妙用途
  6. 9.5noip模拟试题
  7. Swift基础语法: 25 - Swift的类和结构体
  8. C# 对文本文件的几种读写方法
  9. Windows10桌面美化推荐之Dock栏
  10. PostgreSQL用户登录失败自动锁定的解决办法