切片
python的列表、元组和字符串这类序列都支持切片操作,用起来十分方便。
格式如下:
list[start:stop:step]
含义是:在start和stop之间以step间隔取值。负值意味着反向取值!
list = [1,2,3,4,5,6,7,8]
print(list[3:]) #从三开始取
print(list[:3]) #取前三个
print(list[6::-2]) #从6开始 以-2为间隔反向取值
print(list[::-1]) #反序
print(list[:]) #原序列不变
打印如下:
[4, 5, 6, 7, 8]
[1, 2, 3]
[7, 5, 3, 1]
[8, 7, 6, 5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 6, 7, 8]
切片赋值
看一组示例:
l = list(range(10))
print(l)
l[2:5] = [30,40] #index=2~5的值会被[30,40]取代
print(l)
del l[2:5] #删除index=2~5的值
print(l)
#此表达式中l的长度必须要小于 9
#此表达式中l长度必须要大于 3[index=2] + (2 - 1)[[66,77]的长度为2] * 3 = 6
l[2::3] = [66,77] #从index=2开始 每隔3个值赋值为[66,77]对应的值
print(l)
打印如下:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 30, 40, 5, 6, 7, 8, 9]
[0, 1, 6, 7, 8, 9]
[0, 1, 66, 7, 8, 77]