[Python]切片Slice的运用


原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://blog.csdn.net/humanking7/article/details/96728009


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~


赞赏码New

i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值