# 这是学习廖雪峰老师python教程的学习笔记

第3章学习Python的高级特性

python的高级特性帮助我们更简洁的写代码


切片可以帮助我们快速的从 list,tuple,str中取出自己想要的部分

list 和 tuple 的索引是从0开始的

 

L = list(range(10))

 


L[0:3]  取前三个元素,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2。包前不包后

L[:3] # 取出前3个数

L[:10:2]  # 前10个数,每两个取一个(即步长为2)

L[::5]  # 所有数,每5个取一个(即步长为5)

L[:] # 原样复制一个list

 

#也可以倒着取,倒数第一个元素的索引是-1,也是包前不包后

L[-1]      # 取出最后一个元素,格式为 int

L[-2:]   # 取出最后两个元素,格式为list

L[:-1]   # 不显示最后一个元素

L[-2:-1] # 取出倒数第二个元素,格式为List

L[::-1]  # 倒序排列元素,步长为-1,即 [10,9,8….]

L[::-2]  # 倒序排列元素,步长为-2,即 [10,8,6…..]

 

# 字符串的操作

>>> 'ABCDEFG'[:3]

'ABC'

>>> 'ABCDEFG'[::2]

'ACEG'

取字符串建议只用切片,不用下标,在脚本里,有时用下标取值会报错

2、例题

利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:

# -*- coding: utf-8 -*-

def trim(s):

 

方法一:

    if s =="":

        s=s

    elif s[-1]==" ":

        s=s[:-1]

        return trim(s)

    elif s[0]==" ":

        s=s[1:]

        return trim(s)

    return s

 

方法二:(这里只能用切片取值,用索引如s[0],会报错)

    while s[:1] == ' ':   #如果字符串第一个是空格,删除第一个

        s = s[1:]

    while s[-1:] == ' ':  #如果字符串最后一个是空格,删除最后一个

        s = s[:-1]

    return s