[Python]切片Slice的运用

  • 2020 年 3 月 10 日
  • 筆記

原创文章

文章目录

  • @[toc]

  • 0. 环境
  • 1. 切片操作
    • 1.1. 简介
    • 1.2. 举例说明
      • eg.1. 取第1元素
      • eg.2. 取最后1个元素
      • eg.3. 复制整个列表
      • eg.4. 取前10个元素
      • eg.5. 取前10个元素
      • eg.6. 取从第11个元素到第20个元素
      • eg.7.1. 每隔10个取一个数,从开始
      • eg.7.2. 每隔10个取一个数,从第50个元素(51)开始
      • eg.7.3. 每隔10个取一个数,从第50个元素(51)开始,到第89个元素(90)
      • eg.8. 取后10个元素
    • 1.3. 简单运用
  • 2. 参考文献

Python切片Slice的运用

0. 环境

  • Python 3.6

1. 切片操作

1.1. 简介

取指定索引范围的操作,用循环十分繁琐,因此Python提供了切片(Slice)操作符,能大大简化这种操作。

一个完整的切片表达式包含两个:,用于分隔三个参数(start_index、end_index、step),当只有一个:时,默认第三个参数step=1

# 切片操作基本表达式  object[start_index : end_index : step]

1.2. 举例说明

先设置一个列表从1到100,含有100个元素

# 创建列表 L= [1, 2, ..., 99, 100]  L = list(range(1, 101))

eg.1. 取第1元素

>> L[0]  1

eg.2. 取最后1个元素

>> L[-1]  100

eg.3. 复制整个列表

>> L[:]  [1, 2, ..., 99, 100]

eg.4. 取前10个元素

>> L[:10]  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

eg.5. 取前10个元素

>> L[:10]  # 或者 L[0:10]  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

eg.6. 取从第11个元素到第20个元素

>> L[10:20]  [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

注意:

  • L[10]11
  • L[20]21

eg.7.1. 每隔10个取一个数,从开始

>> L[::10]  # 或者 L[0::10]  [1, 11, 21, 31, 41, 51, 61, 71, 81, 91]

eg.7.2. 每隔10个取一个数,从第50个元素(51)开始

>> L[50::10]  [51, 61, 71, 81, 91]

eg.7.3. 每隔10个取一个数,从第50个元素(51)开始,到第89个元素(90)

>> L[50:90:10]  [51, 61, 71, 81]

eg.8. 取后10个元素

>> L[-10:]  [91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

注意:

  • L[-10:-1]会刨除最后1个元素;
  • L[-10,0]会得到[]

1.3. 简单运用

用切片写一个 去掉字符串头尾空格的程序trim()

def trim(s):      n = len(s)      if n == 0: return s        while s[0] == ' ':          s = s[1:]          n = n - 1          if n == 0: return s        while s[-1] == ' ':          s = s[:-1]          n = n - 1          if n == 0: return s        return s

测试代码

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('trim() 函数测试成功!')

2. 参考文献

廖雪峰Python教程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017269965565856


OK! 以上,Enjoy~