对于Python中对list进行切片的理解(三)
在对list进行切片操作时,参数可以使用负数,比如
L = [‘Adam’,’Lisa’,’Bart’,’Paul’] print L[-1] print L[-1:-2] 以上结果输出显示 Paul 和 [],对于print L[-1:-2]容易看成是从倒数第一个元素取到倒数第二个元素,实际上并不是这样,如果填写了负数,则类似于PHP中的字符串切割,从第一个参数起,向其后取值,因此,L[-1:-2]这是不会输出结果的,因为Paul后面并没有可以取的值了,因此这样的写法错误
作业:
利用倒序切片对 1 – 100 的数列取出:
1. 最后10个数;
2. 最后10个5的倍数。
L = range(1,101);
1. 最后10个数,从最后一位开始取,取十个, 因此 print L[-10:] 取-10之后的十个元素, 最后直接取到末尾,省略第二个参数,如果写-1,则为-1之前,-10之后
2. 最后10个5的倍数,可以拿上篇3的倍数为例,5的倍数为L[::5],关键在于最后10个,100是第一个,5X10 = 50,100算一个,因此地50个应该是-46对应的数值,-46对应55,答案:print L[-46::5]
注:切片如果第一个数是正数和负数,取到的值是不一样的,print L[1] 输出结果为
>>> L = [‘Adam’,’Lisa’,’Bart’,’Paul’]
>>> print L[1]
Lisa
>>> print L[-1]
Paul
原因,如果是正数,则为键值相对应的元素,如果是负数,则代表最后第XXX个元素
还没有任何评论,你来说两句吧