konakona
[原创] Python 分片学习
[原创]  Python 分片学习

玩了3天MHP3~打到村长4星了~恭喜下自己~其实也有在刷温泉任务和集会所之类~

 

好了,进入正题吧~

 

在看PYTHON的教程,发现书上讲得有点难以理解了~用自己对PHP的认识来理解就轻松多了。

什么是分片?

分片就是[开始索引值:结束索引值]这样的写法就是分片了。 这种写法可以用在基础数据类型和函数上。
例如以下写法:
http://blog.crazyphper.com/wp-content/uploads/2011/10/PYTHON-300x145.jpg

上面这个例子有一个值得一提的地方:如果用户实际输入只有3位,而输入的希望返回分片的索引是4:10呢?会报错吗?不会,所以这里可以大胆的放任何你想要的截取索引值。

而分片中,实际截取的区域是指从开始索引(不包括开始索引的值)到结束索引(包括结束索引的值)这段距离内的内容。所以最后一段代码,如图结果就是“大白痴”,而不是“痴大白痴”或“大白”了。

什么是设置索引值?

设置索引值其实就是通过在一个函数或变量后加上[索引值]来获取其内容。

这样子

print('hello'[1])
#显示第1位索引的值:e

然后说说另一种写法。

print('hello'[-1])
#输出o

[-1] 实际上返回的是倒序的第0个索引。既然如此,为什么不写[-0]呢?很遗憾,这样写的话返回的是[0]一样的结果:5 ,所以大家一定要记住这个小细节。

这是一个倒序的截取字符串的操作,当变成“-索引”这样的形式时,python就是从字符串最后开始分割内容了。

用分片写呢?这次我们用数组来写,会明确得多。我将PYTHON SHELL中的部分直接复制出来。(没用过的朋友不要紧,“>>>”是指输入区域,就象windows的cmd在可输入区域前的目录一样。所以没有“>>>”的部分实际就是程序执行并返回的内容。)

>>> testArray = [5,6,7,8,9,10]
>>> testArray[-5:-2]
[6, 7, 8]
>>> testArray[-5:]
[6, 7, 8, 9, 10]

testArray[-5:-2] 返回的是返回反序第5个索引(即实际内容6)到反序第2个索引(即8)之间的值。

testArray[-5:] 则是返回从反序第5个索引(即实际内容6)到数组结束的所有内容。

当然如果你输入testArray[:3]也可以,输入testArray[:]也可以,都有不同的功效,大家不妨自己动手试试!

更多的便捷功能——步长

步长——在python2.3以上版本新加入的元素。

步长呢,其实就是在分片的格式上,多出一个参数。 [开始索引值:结束索引值:步长]

大家可以将步长理解为跳出值,这样比较贯彻也好理解。

下面先来一个简单的例题:

>>> testArray[0:5:1]
[5, 6, 7, 8, 9]

>>> testArray[0:5]
[5, 6, 7, 8, 9]

可以看出这2个其实没有区别,那步长到底有什么用呢?试着把第三个参数换一换。

>>> testArray[0:5:2]
[5, 7, 9]

看到区别了吧,其实跳出值就相当于“每次输出一个索引都跳过几个元素后继续输出”这样的一个概念。
*步长的初始值必须以1开始,如果是0会报错。 当步长为1时,就象0乘以1一样,什么效果都没有。步长为2时才开始真正运作,跳过一个索引。步长为3就是跳过两个索引,以此类推。

还可以这样写:

>>> testArray[0::3]
[5, 8]

这个只是告诉大家可以灵活的去写,没什么特别含义。

当然步长也能是负数形式。

>>> testArray[::-2]
[10, 8, 6]

这样就是从右到左提取元素。那么大家一定明白了,如果是步长是正数,就是从左到右提取元素。

其实分片操作非常简单,也很容易理解。只是教材书上写得太过深入或者有点偏离正道,讲得物事人非听不太懂了~~~

我刚开始看到python的这种截取序列的方式非常震精。。。因为相比java、php而言,非常滴随性啊!有点接受不鸟……

所以才想写这个记下来,好让自己巩固记忆,也方便大家学习PYTHON。

赞赏
https://secure.gravatar.com/avatar/3b712b34a0e1b689cfb524c9c6bcdc47?s=256&r=g

团哥

文章作者

继续玩我的CODE,让别人说去。 低调,就是这么自信。

小子进行回复 取消回复

textsms
account_circle
email

konakona

[原创] Python 分片学习
玩了3天MHP3~打到村长4星了~恭喜下自己~其实也有在刷温泉任务和集会所之类~   好了,进入正题吧~   在看PYTHON的教程,发现书上讲得有点难以理解了~用自己对PHP的…
扫描二维码继续阅读
2011-10-03