python笔记:高级特性-切片

一、应用:取一个list或tuple的部分元素

二、对list进行连续切片操作

初始值:比如定义一个list并赋值如下:

>>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

3.1直接输出L

>>> L[:]
 L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

3.1正数切片(从前面开始取元素)

3.1.1取前三个元素

1、L[0:3] 2、L[:3]  两者等价,因为如果第一个索引为0的话可以省略

运行:

>>> L[:3]
['Michael', 'Sarah', 'Tracy']

3.2.1从索引1开始,取出2个元素来

L[1:3]

运行:

>>> L[1:3]
['Sarah', 'Tracy']

3.3倒数切片(从后面取元素)

3.3.1取倒数两个元素

L[-2:]  注意:此处不能画蛇添足写为L[-2 : 0]

运行:

>>> L[-2:]
['Bob', 'Jack']

3.3.2取倒数第二个元素

L[-2 : -1]

运行:

>>> L[-2:-1]
['Bob']

四、对list进行间隔切片操作

初始值:以0-99的数列为例,对其进行操作,创建如下

>>> L = list(range(100))
>>> L
[0, 1, 2, 3, ..., 99]

4.1前10个数,每两个取一个

L[:10:2]

运行:

>>>L[ : 10 : 2]

[0, 2, 4, 6, 8]

4.2所有数,每5个取一个

L[ :  : 2]

运行:

>>>L[ : :2]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

五、对tuple切片操作

tuple也是一种list,唯一的区别是tuple是不可变对象,因此tuple也可以进行切片操作,只是切片完成后仍然是tuple

初始值:定义一个tuple为:

以0-99的数列为例,对其进行操作,创建如下

>>> L = tuple(range(100))
>>> L
(0, 1, 2, 3, ..., 99)

5.1和list进行的是一样的操作

对tuple的前50个数里每隔4个数进行取值切片

t[ : 50 : 4]

运行:

>>>t[ : 50 : 4]
(0,5,10,15,20,25,30,35,40,45)

六、对字符串进行切片

6.1、取字符串前三个元素

>>> 'ABCDEFG'[:3]

'ABC'

6.2、在字符串中每隔两个元素取一次元素

>>> 'ABCDEFG'[::2]
'ACEG'

七、cmd下举例子展示:

7.1对list进行切片

7.2对tuple进行切片


7.3对字符串进行切片


八、练习

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

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

测试用例:

# 测试:
if trim('hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello') != 'hello':
    print('测试失败!')
elif trim('  hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello  world  ') != 'hello  world':
    print('测试失败!')
elif trim('') != '':
    print('测试失败!')
elif trim('    ') != '':
    print('测试失败!')
else:

    print('测试成功!')

九、补充

情况:[-4::-1] 、[:-4:-1]、[4::-1]


猜你喜欢

转载自blog.csdn.net/zyckhuntoria/article/details/80671142