一、应用:取一个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]