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 比 循环还要简洁。

原文地址:http://blog.51cto.com/13502993/2144023

时间: 2024-10-14 09:54:00

python 高级特性:slice(切片) 灵活指定范围的相关文章

Python高级特性之切片

取一个list或tuple的部分元素是非常常见的操作,使用循环显得十分繁琐,但是Python提供了切片操作符(Slice),能很简单的完成对列表或者元组进行取值.接下来根据列表L和L2写几个例子, L = ['tom','bob','mary','lisa','jack'] L2= list(range(50)) 1.L[0:3] L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素2.L[:3] 如果第一个索引是0,还可以省略3.L[1:] 取索引

Python高级特性之---切片操作

切片操作首先支持下标索引,通过[ N:M :P ]操作 索引正向从0开始,逆向从-1开始N:切片开始位置M:切片结束位置(不包含)P:指定切片步长,为正数表示按照指定步长正向切片,为负数反之一.列表的切片操作列表切片后还是列表通过列表生成器定义一个列表: In [2]: a = [n for n in range(10)] In [3]: a Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 通过切片浅拷贝对象: In [4]: a[:] Out[4]: [0, 1,

Python进阶:全面解读高级特性之切片!

导读:切片系列文章连续写了三篇,本文是对它们做的汇总.为什么要把序列文章合并呢?在此说明一下,本文绝不是简单地将它们做了合并,主要是修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动,如此一来,本文结构的完整性与内容的质量都得到了很好的保证. 众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串.列表.元组-)中的单个元素,那么,如果要获取一个索引区间的元素该怎么办呢? 切片(slice)就是一种截取索引片段的技术,借助切片技术,我们可以十分灵活地处理

Python高级特性——学习笔记

Python中非常有用的高级特性,1行代码能实现的功能,决不写5行代码.请始终牢记,代码越少,开发效率越高. 1.切片slice.L = [1, 2, 3, 4, 5] L[0:3]=[1,2,3]表示,从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素. 如果第一个索引是0,还可以省略 倒数切片L[-2:]=[4,5]从倒数第二个数 到 最后一个数 L = list(range(100))# 创建一个0-99的数列L L[:10:2]# 前10个数,每两个取一个

Python高级特性(3): Classes和Metaclasses(转)

原文:Python高级特性(3): Classes和Metaclasses 类和对象 类和函数一样都是Python中的对象.当一个类定义完成之后,Python将创建一个“类对象”并将其赋值给一个同名变量.类是type类型的对象(是不是有点拗口?). 类对象是可调用的(callable,实现了 __call__方法),并且调用它能够创建类的对象.你可以将类当做其他对象那么处理.例如,你能够给它们的属性赋值,你能够将它们赋值给一个变量,你 可以在任何可调用对象能够用的地方使用它们,比如在一个map中

Python高级特性(2):Closures、Decorators和functools(转)

原文:Python高级特性(2):Closures.Decorators和functools 装饰器(Decorators) 装饰器是这样一种设计模式:如果一个类希望添加其他类的一些功能,而不希望通过继承或是直接修改源代码实现,那么可以使用装饰器模式.简单来说 Python中的装饰器就是指某些函数或其他可调用对象,以函数或类作为可选输入参数,然后返回函数或类的形式.通过这个在Python2.6版本中被新 加入的特性可以用来实现装饰器设计模式. 顺便提一句,在继续阅读之前,如果你对Python中的

Python高级特性(1):Iterators、Generators和itertools(转)

译文:Python高级特性(1):Iterators.Generators和itertools [译注]:作为一门动态脚本语言,Python 对编程初学者而言很友好,丰富的第三方库能够给使用者带来很大的便利.而Python同时也能够提供一些高级的特性方便用户使用更为复杂的数据结构.本系 列文章共有三篇,本文是系列的第一篇,将会介绍迭代器.生成器以及itertools模块的相关用法.由于作者 Sahand Saba 列举的示例中有诸多专业的数学相关内容,因此翻译中有诸多不妥之处请大家指出,非常感谢

Day-5: Python高级特性

python的理念是:简单.优雅.所以,在Python中集成了许多经常要使用的高级特性,以此来简化代码. 切片: 对于一个list或者tuple,取其中一段的元素,称为切片(Slice). L[start:end]表示取L中从索引号为start到end的元素,其中如果顺着取,则索引号范围为0~len(L)-1:反着取,则索引号范围为-1~-len(L). 迭代: Python中迭代用for...in来完成.对于list或者tuple,就是for name in names之类:而对于dict,就

Python笔记2#Python高级特性(Slice,Iteration, List Comprehensions,Generator)

▲切片Slice 在很多编程语言中,针对字符串提供了很多截取函数,其实目的就是对字符串进行切片.Python没有针对字符串的截取函数,只需要切片一个操作就能完成.Python切片非常灵活,一行代码就可以实现很多行循环才能完成的操作.示例代码如下: >>> L='ABCDEFG' >>> L[2:5] 'CDE' >>> L[:5] 'ABCDE' >>> L[-5:] 'CDEFG' >>> L[::2] 'ACEG