目录
-
初识切片
用于取一个list或tuple的部分元素,左右两个数字分别代表起始位置和终止位置
切片是复制了list
>>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
>>> L[0:3]
['Michael', 'Sarah', 'Tracy']
-
L[:]
不填,默认从索引0开始,直到索引 len(L),但不包括索引len(L), 即 L[:]==L[0:len(L)]
>>> L[:3]
['Michael', 'Sarah', 'Tracy']
-
L[-2:]
既然Python支持L[-1]
取倒数第一个元素,那么它同样支持倒数切片
>>> L[-2:]
['Bob', 'Jack']
>>> L[-2:-1]
['Bob']
-
L[::-1]
最后一个数字代表取值间隔,符号代表顺序
>0代表正序(从左向右取值)默认值为1,可不填
L=[0,1,2,3,4,5,6,7,8,9,10]
print(L[:3:])
print(L[:3])
print(L[:3:2])
输出:
[0, 1, 2]
[0, 1, 2]
[0, 2]
,<0代表倒序(即从右往左取值),首尾默认值也翻过来
L=[0,1,2,3,4,5,6,7,8,9,10]
# 负数代表倒序
print(L[::-1])
print(L[-4::-2])
print(L[:-4:-2])
print(L[4::-2])
print(L[2:8:-2])
print(L[8:2:-2])
输出:
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
[7, 5, 3, 1]
[10, 8]
[4, 2, 0]
[]
[8, 6, 4]
第五个,从2~8无法倒叙取到值,所以为空
-
其他
list里存储的是对象的引用!
切片实际是复制了list中对象的引用
详见https://www.cnblogs.com/gscnblog/p/10372539.html
>>> a=[1,2,3]
>>> b=a[:]
>>> b[0]=10
>>> print(b)
[10, 2, 3]