# 这是学习廖雪峰老师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
原文地址:http://blog.51cto.com/12758568/2115628