[::-1]是对字符串的截取操作,str[a:b]表示截取字符串的a开始的位置,b表示结束位置。b是负数,表示去除后几位。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。
取前3个元素,利用切片操作就是“L[0:3]”。如果第一个索引是0,还可以省略“L[:3]”。
也可以从索引1开始,取出2个元素出来,L[1:3],显示的结果就是“['Sarah', 'Tracy']”。
类似的,既然Python支持L[-1]取倒数第一个元素,那么同样支持倒数切片,试试“L[-2:]”,返回的就是“['Bob', 'Jack']”,记住倒数第一个元素的索引是-1。
扩展资料:
对于具有序列结构的数据来说,切片操作的方法是:consequence[start_index: end_index: step]。
1、start_index:表示是第一个元素对象,正索引位置默认为0;负索引位置默认为 -len(consequence)
2、end_index:表示是最后一个元素对象,正索引位置默认为 len(consequence)-1;负索引位置默认为 -1。
3、step:表示取值的步长,默认为1,步长值不能为0。
::-1其实是同理,把元素插入k位置需要将k位置本来的元素向后步进1以空出一个新元素的插入点。
所以::1的最终i值会在循环时变大为k+1,这是为了接受更低位的列表数据,比如a【k]=a【k+1】,这里的a【k】是在有一个将要删除一个元素位的列表中的,所以有一个位置是无用的,但是在执行操作时,是先插入,后删除。所以k要大于原有序列号向后步进1,本位置存在的元素还未删除,依然占有也就是说,原有的k+1位置的元素会溢出。k+1序列处此时当于k+2,k相当于k+1,而k位置元素将在执行操作后被删除,然后重新将后位置排序到此位置。::1就是要把k后有用的列表元素往后推一格,你可以理解为列表此时扩张,于此同时我们将k+1赋值到k,k大于原本k一位,再删除k原本存在的一位元素后,最后将插入新元素的k重新排序到列表原k位置。(所以其实k值是变化的,循环时k及以后的序列号要大于1,就在于列表的根本性质是栈的推进推出。)
::-1也是一样的,只不过此时改成了a【k+1】=a【k】,改成了向后赋值,但本来存在的有用的值也需要向后推进,所以腾出一个空位,并予以空位值。
http://zhidao.baidu.com/question/680546440445879012.html?oldq=1
或体的内容你可以找一本叫python核心编程的书,书上对切片很详细的做了介绍,有pdf版本的。
切片
[开始:结束:步进]
步进默认为 1
In [19]: string = 'python'
In [20]: string[::1] # 步进为1
Out[20]: 'python'
In [21]: string[::2] # 步进为2, [0, 0+2, 0+2+2...]
Out[21]: 'pto'