Python3切片 - vip共享吧
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们


导航菜单
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们
Python

Python3切片

2024/9/6 韩俊  Python教程 620 0

比如我们取一个有序集合 list 类型的变量 L 的前 2 个元素做为一个集合,可以用 [L[0],L[1]] 这种方法,如果要取前 N 个元素,但是 N 很大,我们就需要一个个列出来或者用循环操作等,这样就会可读性差或者操作麻烦等等。

Python 提供了取有序集合(str,list,tuple 或支持通过下标访问的自定义对象)子集的语法,就是切片。

正向切片(从左往右取子集)

对于有序集合 L,我们取前 2 个元素,用一行代码 L[0:2] 就可以完成切片。L[0:2] 的意思是:从索引 0 开始取,直到索引 2 为止(不包括索引 2),即索引 0 和索引 1 正好是 2 个元素。

L = [1, "hello", "byebye", "birdpython"]
print(L[0:2])  # [1, "hello"]

我们也可以从索引的任意位置开始,向后取子集。

L = [1, "hello", "byebye", "birdpython"]
print(L[1:2])  # ["hello"]

如果我们所获取切片的第一个索引是 0,我们还可以简写成 L[:end]。比如我们从索引 0 取到索引 2(不包括 2)。

L = [1, "hello", "byebye", "birdpython"]
print(L[:2])  # [1, "hello"]

如果我们想从任意位置想取到最后一个值(包括最后一个值),可以用 L[begin:]。

L = [1, "hello", "byebye", "birdpython"]
print(L[1:])  # 从索引 1 开始到最后一个索引,结果为:["hello", "byebye", "birdpython"]
print(L[:])   # 从索引 0 开始到最后一个索引,结果为:[1, "hello", "byebye", "birdpython"]

Python 对有序集合支持负索引,索引为 -1 代表最后一个成员,-2 是倒数第二个成员,以此类推。

L = [1, "hello", "byebye"]
print(L[-1]) # byebye
print(L[-2]) # hello
print(L[-3]) # 1

同样在我们也可以使用负索引进行切片,注意:使用负索引切片也是从左到右。

L = [1, "hello", "byebye"]
print(L[0:-1])    # [1, "hello"]
print(L[-3:2])    # [1, "hello"]
print(L[-3:-1])   # [1, "hello"]
print(L[0:2])     # [1, "hello"]

带步长的切片

假如有个 list 类型的变量 L,我们存储 20 个变量,变量值为 0-19。对于 L 中的前 10 个数,每隔 2 个数取 1 个值, 切片中第 2 个冒号后面的值代表每隔几个取 1 次值。

L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
print(L[0:11:2])

当步长为负数时,代表从右往左取值(我们也称为逆向切片),比如我们想输出一个有序集合的逆向,可以使用步长为负的切片。

L = [1, "hello", "byebye"]
print(L[len(L):-(len(L) + 1):-1])
print(L[-1::-1])
print(L[::-1])

关于切片的注意事项

如果我们通过切片取的范围不存在,则返回一个空的有序集合。

L = [1, "hello", "byebye"]
print(L[3:8])  # []
print(L[2:0])  # []

如果我们通过切片取得的索引最右边越界(步长为负是最左边),Python 解释器并不会抛出异常,而是取到最后一个成员且包含最后一个成员。

L = [1, "hello", "byebye"]
print(L[0:len(L)])  # [1, "hello", "byebye"]
print(L[0:8])       # [1, "hello", "byebye"]

对有序集合的切片操作并不会改变集合本身的值,Python 会另创建一个对象来存储切片后的子集。

L = [1, "hello", "byebye"]
newL = L[0:2]
print(L)     # [1, 'hello', 'byebye']
print(newL)  # [1, 'hello']

本节重要知识点

熟练使用切片。

对于没有步长或步长为正的切片,无论是正负索引,切片都是从左往右切。

记住步长为负时,切片从右往左切。

点赞:0 分享

上一篇
Python3迭代
下一篇
Python3装饰器
作者头像 作者名称 作者性别
韩俊

热门推荐

1 Python3字符串
2 Python3的for 循环和 while 循环
3 Python3高级运算符
4 python3类和对象的概念
5 Python中hashlib模块详解
6 Python中HTMLParse模块详解

评论列表

取消回复

    •  
      Login

      韩俊

      趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

      退出登陆
      • 10076文章
      • 455评论
      • 80微语
  • 广告赞助

  • 二零二五年06月
    一二三四五六日
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
  • 分类

    • 网站模板源码
    • IT技术笔记
    • 好资源分享
    • 共享网络资源
  • 最新文章

      • 幼儿端午祝福语简短句
        • 端午简短祝福语送家人
          • 端午文案祝福语简短励志
            • 经典的黄句子
              • 经典黄色搞笑句子
                • 迷雾通:免费使用的VPN软件
                  • 任推邦:打造你的赚钱新途径!
                    • 任推邦是正规平台吗?任推邦邀请码多少?
  • 热门文章

    • 酷狗音乐VIP账号 酷狗音乐会员账号共享2017.01.29更新
    • 芒果tv vip会员账号 芒果tv会员账号共享2017.01.29更新
    • 爱奇艺vip账号 爱奇艺/PPS会员账号共享2016.12.12更新
    • 优酷/土豆vip会员账号 优酷会员账号共享2017.01.29更新
    • 活动:免费获得爱奇艺VIP/PPS会员账号50天以上的使用权!
    • 酷我音乐VIP账号 酷我音乐会员账号共享2016.12.31更新
    • 暴风影音会员账号 暴风影音会员账号共享2016.12.31更新
    • m1905会员账号 m1905会员账号共享2016.10.21更新
  • 最新评论

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/10.jpg

      你丫的 文章写得太好了 支持下!![F3...

    • https://www.vipshare8.com/content/templates/meta/Static/images/avatar.jpg

      很棒!刚在某网站看到这个,很欣赏,可惜下...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3861064027

      呃呃呃 oooo

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了111:根据激活的时间有一年的有效期!

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=792480561

      到2025就到期了吗?

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      [blockquote]打卡时间:16:...

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/7.jpg

      俊哥,想借用迅雷一用!但需要手机验证!看...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3293901900

      感谢大大的分享

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了好奥v:如果没有解析成功,可以切换接口...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=131241242441

      现在视频解析网站怎么用不了啦?

  • 网站统计 I 当前在线:659人

    • 本站管理:1位
    • 用户总数:591位
    • 置顶文章:2篇
    • 日志总数:10076篇
    • 微语总数:80条
    • 评论总数:455条
    • 标签总数:83条
    • 页面总数:8页
    • 分类总数:14个
    • 链接总数:16条
    • 运行天数:3699天
    • 最后更新:5月26日
    • 登录
    • 注册
    • 找回
    Copyright © 2025vip共享吧网站地图 网站备案豫ICP备19004194号-1

    免责声明:本站资源仅供用于学习和交流,本站部分素材内容来源于网络,如有侵权/投稿等,请及时联系站长.

    • 首页
    • 秒懂百科 秒懂百科
    • 搜索
    • 史上今日

    大家都在搜

    • 腾讯VIP账号共享
    • seo
    • 返利网
    • PHP教程
    • 土豆vip账号
    • 千图网会员账号共享
    • Java教程
    • VIP电影
    • 秒懂百科
    • 聊天app
    • redis
    • 爱奇艺VIP账号共享
    • 经典句子
    • m1905会员账号
    • m1905会员账号共享
    • 百度云会员账号共享
    • 
    • 