• Day7 python高级特性-- 切片 Slice


    先举一个例子,取list或tuple中的某几个元素:
        1.取 ['a','b','c','d','e','f'] 第1、2、5、6个元素:
            >>> a = ['a','b','c','d','e','f']
            >>> [ a[0], a[1], a[4], a[5] ]
            ['a', 'b', 'e', 'f']       
          
        2.取前x个元素可以用循环的方式将0~(x-1) 索引范围内的元素取出
       
       
    不过这样太繁琐了。使用切片(Slice)会非常方便。
    切片语法[x:y:z] , x: 开始切片位置, y:结束切片位置(不包含y), z:xy切片后间隔z个元素输出,默认为1可以省略。 如果x为0 ,那么0可以省略,写作为[:y];如果y为最后一个元素,那么y可以省略,写作[x:]。
    取前三个元素(索引为0,1,2)
        >>> ['a','b','c','d','e','f'] [0:3]
        ['a', 'b', 'c']
        or
        >>> a =  ['a','b','c','d','e','f']
        >>> a[0:3]
        ['a', 'b', 'c']
    [x:y] ----> 从x开始取到y ,不包含y。
    也可以像a[-1] 取倒数第一个元素的方式,支持倒数切片:
        >>> a =  ['a','b','c','d','e','f']
        >>> a[-2:-1]
        ['e']
        >>> a[1:-1]
        ['b', 'c', 'd', 'e']
    取前10个元素
        a[:10]
       
    取后10个元素
        a[-10:]
       
    取11~20个元素
        a[10:20]
    取前10个元素,每两个元素取一个(一共取5个)
        a[:10:2]
    取全部元素(克隆一个)
        a[:]        #相当于从0取到最后,所以两个值都省略了
    字符串也可以看成是一种list ,每一个字符就是每一个元素,因此,字符串也可以使用切片来操作。
        >>> a = 'abcdefghijklmn'          
        >>> a[0:3]
        'abc'
        >>> a[-2:3]
        ''
        >>> a[-2:-1]
        'm'
        >>> a[-1:]
        'n'
     

    #练习题
    #利用切片操作,实现一个trim()函数,去除字符串首尾的空格
    def trim(a):
        lens = len(a)
        if a[:1] == ' ':
            a = a[1:]
            return trim(a) 
        elif a[-1:] == ' ': #elif a[-1:lens] == ' ':  直接用[-1:] 就是最后一个元素了~
            a = a[:lens-1]
            return trim(a)
        else :
            return a
    #测试函数
    print(trim('   abc'))
    print(trim('hello '))
    if trim('hello ') != 'hello':
        print('测试失败1!')
    elif trim('  hello') != 'hello':
        print('测试失败2!')
    elif trim('  hello  ') != 'hello':
        print('测试失败3!')
    elif trim('  hello  world  ') != 'hello  world':
        print('测试失败4!')
    elif trim('') != '':
        print('测试失败5!')
    elif trim('    ') != '':
        print('测试失败6!')
    else:
        print('测试成功!')
  • 相关阅读:
    php-ip
    第十三讲 服务寄宿
    第十二讲:服务寄宿
    第十一讲:大消息处理
    第十讲:绑定(信道)
    第九讲:消息契约
    第八讲:数据契约版本控制
    第七讲:数据契约(2)
    第六讲:数据契约
    第五讲:异步操作
  • 原文地址:https://www.cnblogs.com/konggg/p/9056368.html
Copyright © 2020-2023  润新知