资讯专栏INFORMATION COLUMN

python学习笔记-切片

TalkingData / 475人阅读

摘要:取多个元素从头开始取多个元素切片结束,但是不包括该的元素。切片开始的不填则默认是从最前端即开始。当然,从尾端开始切片,也支持省略代表一直切到尾部。其他编程语言入都提供了很多操作字符串的函数,其实中可以利用切片轻松完成。

取一个list或者tuple的一部分是十分常见的操作。我们除了利用循环通过索引一个个获取元素外,python还为我们提供了方便的切片(Slice)操作符:

我们定义一个list,以供下面举例使用。

L = ["apple","banaba","peal","orange","water melon"]
取一个元素 顺序取一个元素

例如L[1]代表第2个元素,即index为1的元素。

逆序取一个元素

list、tuple、string等不仅能从头开始取元素,还可以从尾端开始取元素。例如:
list[-1]则是指list的倒数第1个。

取多个元素 从头开始取多个元素
print L[0:3]
        ||____切片结束index,但是不包括该index的元素。
        |____切片起始index。包括该index的元素。
        
# 上述即取L这个list的index为0、1、2的三个元素。
        
print L[ :3]
        |___切片开始的index不填则默认是从list最前端即index=0开始。(事实上也不用空一格,这里只是展示方便。)

上述两个print函数输出的都是["apple", "banaba", "peal"]。切片符号是一对

从尾端开始取多个元素

例如

L[-3:-1]
   |  |____倒数第1个结束,但不包括该元素。
   |_____倒数第3个开始,包括该元素。

哇,我们找到了一个规律:
就是python切片的时候总是包括前面那个元素,却不包括最后一个元素。
当然,从尾端开始切片,也支持省略index代表一直切到尾部。例如:

L[-3:]

突然有一个神奇的想法,切片的时候开始与结束时的index都省略,那么会发生什么?
L[:],谜底就是切出了一个跟原来的list一摸一样的list。

上面所有的例子都是用list来举例说明的。其实tuple、string都是一样的。
其他编程语言入python、java都提供了很多操作字符串的函数,其实python中可以利用切片轻松完成。

注意点

python切片的时候[from:to]中的from一定要比to小,才会返回正确的切片,否则会返回一个空的list、tuple或则什么都没有(给字符串切片的时候)。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44288.html

相关文章

  • python 学习笔记 关于切片

    摘要:我们还可以给切片进行命名,有名字的切片,显然更具有可读性。对切片赋值时,赋值符号右侧必须是一个可迭代对象,即使这个对象只包含一个元素,否则会提示错误。注以上内容主体来自于流畅的一书中切片和切片原理 切片是python中列表(list)、元组(tuple)、字符串(str)等序列类型都支持的一种操作,但实际上切片的功能比人们所想象的要强大的多。 切片区间为什么会忽略最后一个元素 当只有...

    jerryloveemily 评论0 收藏0
  • python学习笔记-魔术方法,让自定义类更像内置类型

    摘要:的魔术方法是中那些预定义的像类型的函数。使用的魔术方法的最大优势在于提供了简单的方法让对象可以表现得像内置类型一样。廖雪峰老师教程里写的是方法,不知道为啥。 Python的魔术方法是Python中那些预定义的像__XXX__类型的函数。使用Python的魔术方法的最大优势在于python提供了简单的方法让对象可以表现得像内置类型一样。 __str__函数 __str__函数用于处理打印...

    changfeng1050 评论0 收藏0
  • python摸鱼学习笔记

    摘要:代码现在还比较简陋,但起码解决了问题,等以后熟悉了的语言以后再回来优化吧 正在照着廖雪峰dalao的教程学习python中目前学到了高级特性->切片这节课有个教程 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法: 思考了很久,最终用笨方法写出来了一个模板 l = if(l): x = 0 y = 1 whi...

    Jingbin_ 评论0 收藏0
  • Python学习之路29-序列的修改、散列和切片

    摘要:具体方法和上一篇一样,也是用各个分量的哈希值进行异或运算,由于的分量可能很多,这里我们使用函数来归约异或值。每个分量被映射成了它们的哈希值,这些哈希值再归约成一个值这里的传入了第三个参数,并且建议最好传入第三个参数。 《流畅的Python》笔记。本篇是面向对象惯用方法的第三篇。本篇将以上一篇中的Vector2d为基础,定义多维向量Vector。 1. 前言 自定义Vector类的行为...

    马忠志 评论0 收藏0
  • 流畅的python读书笔记-第十章-序列的修改、散列和切片

    摘要:例如,的序列协议只需要和两个方法。任何类如,只要使用标准的签名和语义实现了这两个方法,就能用在任何期待序列的地方。方法开放了内置序列实现的棘手逻辑,用于优雅地处理缺失索引和负数索引,以及长度超过目标序列的切片。 序列的修改、散列和切片 接着造Vector2d类 要达到的要求 为了编写Vector(3, 4) 和 Vector(3, 4, 5) 这样的代码,我们可以让 init 法接受任...

    cpupro 评论0 收藏0

发表评论

0条评论

TalkingData

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<