python 高级特性:slice(切片) 灵活指定范围

在python 官网的解释:

  • class slice(stop)

  • class slice(start, stop[, step])

Return a slice object representing the set of indices specified by range(start, stop, step). The start and step arguments default to None. Slice objects have read-only data attributes start, stop and step which merely return the argument values (or their default). They have no other explicit functionality; however they are used by Numerical Python and other third party extensions. Slice objects are also generated when extended indexing syntax is used. For example: a[start:stop:step] or a[start:stop, i]. See itertools.islice() for an alternate version that returns an iterator.


一、普通指定范围方法

#将数字填入L

L = []; #list
n = 1;
while n <= 99:  
    L.insert(0, n);
    n = n + 1;
print L;


#take n in head
n = 10
for i in range(n):
    print i, ":", L[i];

普通.PNG


二、slice方式

L = []; #list
n = 1;
while n <= 99:  
    L.insert(0, n);
    n = n + 1;


#slice
##follow way:print "L[0:10]:", L[0:10];  #从第0位开始,第10位结束
print "L[:10]:", L[:10];     # = L[0:10]
print "L[::2]:", L[::2];       # = L[0:100:2] 逢2出1 
print "L[-2:]", L[-2:];       # 从左往右,倒数第二位开始
print "L[-2:-1]", L[-2:-1];  # 从左往右,倒第二位开始 ,倒数第一位结束

print "L[:-90]:", L[:-90];

数字.PNGprint '';


string = 'abcdef'
print 'string:%s'%string;
print 'string[:3]:', string[:3];
print 'string[::2]:', string[::2];

字符串.PNG


可见,slice 比 循环还要简洁。

猜你喜欢

转载自blog.51cto.com/13502993/2144023