首先你要理解什么是分片,也有的书叫切片(slice)。当你需要一个序列的子串的时候,你就可以使用切片操作
a = ['a','b','c','d','e','f','g']
在a这个序列中,如果你想截取里面['c','d','e']这个子序列,那么你就可以使用切片a[2:5]
它的语法形式是a[start:end],这里有一个区间边沿取值的问题。首先你要明确序列的索引是从0开始的,a[2:5]取值的范围是[2,5),前面是闭区间,后面是开区间,也就是2<=索引值<5这段区间里的元素。所以如果这样来切的话:a[1:1],得到的就是[],空序列。试问在序列a中,哪里有元素的索引是既>=1又<1的呢?
上面切片出来出来(a[2:5])的值是['c','d','e']。但是它返回的并不是一个值,而是一个引用,换句话说,a[2:5]之后所得到的子序列,如果你对它进行修改
那么它的修改就会反馈到原来的序列当中,你可以尝试一下:
a[2:5] = ['x','y','z']
print a
a = ['a','b','x','y','z','f','g']
你对切片进行赋值已经反映到源序列当中。但是,如果我不赋值三个元素,我赋值两个