先举一个例子,取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('测试成功!')

最新文章

  1. Lua 基础
  2. C# 字典 Dictionary 转 JSON 格式遍历
  3. MyEclipse设置注释格式(转载)
  4. HDU 3501 Calculation 2(欧拉函数)
  5. 基于jeasyui的遮罩扩展[修复链式bug]
  6. JSP文件转换成为JAVA文件后的结构
  7. VS访问不到TFS、VS连接TFS报TF30063
  8. C#工具:WPF生成图片验证码
  9. Spring Boot读取配置的 5 种方式
  10. Json Schema的使用
  11. httpd配置文件详解及实例
  12. 第一次打开app
  13. csu oj 1344: Special Judge
  14. Java基础-流程控制语句与运算符
  15. springmvc和encache集成
  16. ASP.NET MVC 项目文件夹结构
  17. 将Tp-link无线路由器桥接到Dlink无线路由器上
  18. nfs服务器与客户端配置
  19. ngRoute 和 ui.router 的使用方法和区别
  20. 自从教学弟学会了Python,他每天都爬一些好不正经的图片!

热门文章

  1. 「CEOI2013」Board
  2. web自动化 模拟鼠标、键盘操作
  3. js 时间日期与时间戳之间转换
  4. 太干了!一张图整理了 Python 所有内置异常
  5. Java基础教程——正则表达式
  6. I/O中的 同步异步,阻塞非阻塞
  7. 基于gin的golang web开发:认证利器jwt
  8. synchronized的底层原理?
  9. 雪花算法 Java 版
  10. 《Machine Learning in Action》—— 浅谈线性回归的那些事