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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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];

技术分享图片


二、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];

技术分享图片print '';


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

技术分享图片


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

以上是关于python 高级特性:slice(切片) 灵活指定范围的主要内容,如果未能解决你的问题,请参考以下文章

Python高级特性——切片(Slice)

Python高级特性之切片

python基本知识:数据类型高级

python - 高级特性

Python学习笔记高级特性

Python高级特性