取一个list或tuple的部分元素是非常常见的操作。
def slice_operation():
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
l1 = L[0:3] # ['Michael', 'Sarah', 'Tracy']
l2 = L[:3] # ['Michael', 'Sarah', 'Tracy']
# Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片
l3 = L[-2:-1] # ['Bob', 'Jack']
# 前10个数,每两个取一个
l4 = L[:10:2] # [0, 2, 4, 6, 8]
# 所有数,每5个取一个
l5 = L[::5] # [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
L = list(range(100))
# 只写[:]就可以原样复制一个lis
l6 = L[:]
# tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple
T = (0, 1, 2, 3, 4, 5)
t = T[:3] # (0, 1, 2)
# 字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串
str = 'ABCDEFG'[::2]
str1 = str[::2] # 'ACEG'