• 技术文章 >后端开发 >Python教程

    Python切片索引用法

    不言不言2018-06-04 18:00:02原创1544
    这篇文章主要介绍了Python切片索引用法,结合实例形式详细分析了Python切片索引的常见使用方法与操作注意事项,需要的朋友可以参考下

    本文实例讲述了Python切片索引用法。分享给大家供大家参考,具体如下:

    在Python中,可以用用简单的方括号加一个下标的方式访问序列的每一个元素,这种方式称之为切片操作符,切片操作符有三种形式:

    [][:][::]

    访问某一数据元素的语法如下:

    sequence[index]

    sequence是序列的名字,index是访问元素的对应的偏移量,为正数,0<=index<=len(sequence)-1;使用负索引的时候,其范围为-len(sequence) <=index <= -1

    由于Python是面向对象的,所以也可以通过在序列后直接加上一个索引进行访问,如下所以

    print ('a','b','c','d')[2]

    对于访问多个元素的情形

    sequence[starting_index:ending_index]

    下面就访问的几种方式进行举例说明:

    sequence="abcdefgh"
    print len(sequence)  #显示序列长度
    print sequence    #打印完整序列
    print sequence[:]
    print sequence[2:3]  #切片显示,不指定步长默认为1,指定了步长(这里是setp为2)按照步长进行显示
    print sequence[1:6:2]
    print sequence[3]   #元素访问
    print sequence[0:3]  #从首元素开始访问,访问区间为[0,3),左开you
    print sequence[:3]
    print sequence[2:8]  #从第二个元素一直访问到最后一个元素
    print sequence[2:]
    print sequence[::-1] #从最后一个元素开始访问,逆序访问,可以视为“翻转”操作
    print max(sequence)
    print min(sequence)
    print sequence.index('c')

    这里要注意的是重复操作符 *

    sequence * copies_int

    当需要一个序列的多个拷贝时,重复操作符就可以发挥作用了,copies_int 必须为整形

    print sequence*3   #使用重复操作符

    连接操作符 +

    sequence1 + sequence2

    允许使用 + 将两个相同类型的序列进行连接

    print sequence + sequence

    但注意看起来很方便,但是这种操作不是最快或者最有效地,对字符串来说,这个操作不如把所有子字符串放到一个列表中或者可迭代对象中,然后使用join()方法来把所有的内容连接在一起节约内存;而对于列表而言,推荐是哟个列表类型的extend()方法来把两个或者多个列表对象合并

    str.join(sequence) #方法用于将序列中的元素以指定的字符连接生成一个新的字符串

    str = "-";
    seq = ("a", "b", "c"); # 字符串序列
    print str.join( seq );

    输出为:

    a-b-c

    list.extend(seq)  #函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

    aList = [123, 'xyz', 'zara', 'abc', 123];
    bList = [2009, 'manni'];
    aList.extend(bList)
    print "Extended List : ", aList ;

    输出为:

    Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

    切片索引的语法要比简单的单一元素索引方法灵活很多,开始和结束索引值可以超过字符串的长度。即起始索引值可以小于0,而结束索引值可以大于序列的长度,如:

    print ('Faye','Leanna','Daylen')[-100:100]

    输出为:

    ('Faye', 'Leanna', 'Daylen')

    如果有一个字符串,想通过循环按照这样的方式进行显示:每次都把位于最后的那一个字符砍掉,如何实现呢?

    sequence = 'abcdef'
    i = -1
    for i in range(-1,-len(sequence),-1):
      print sequence[:i]

    输出为:

    abcde
    abcd
    abc
    ab
    a

    发现没有显示第一个,即是没有显示完整的字符串,除开另外单独定义一个sequence[:0],这里使用None作为索引值

    sequence = 'abcdef'
    for i in [None] + range(-1,-len(sequence),-1):
      print sequence[:i]

    输出为:

    abcdef
    abcde
    abcd
    abc
    ab
    a

    php入门到就业线上直播课:查看学习

    以上就是Python切片索引用法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:Python 用法 切片
    上一篇:python2.7实现爬虫网页数据 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• Python NumPy教程之数据类型对象• 使用Python处理KNN分类算法• Python标准库中的logging用法示例• 详解Python中的条件判断语句• python发腾讯微博代码分享
    1/1

    PHP中文网