其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了。。感觉很清爽,而且又开始写js的时候老是想用xxx in range(): ...跪。:( )
而是我觉得字符串操作的切片真实让我感到前所未有的爽。
试想一下,我们平时操作最多的数组和字符串在切片的帮助下,不知道可以省去多少时间和麻烦。而且有了切片甚至不用去记很多可以被切片代替的api。
今天我在啃《学习javascript数据结构与算法》的时候,无意中发现js其实合理利用
Array.prototype.splice()
这家伙,也能轻松实现切片的效果,而不需要再去记那些繁琐的api。
例如 我这里先申明一个下面用到的实验数组
var laplace = [0,1,2,3,4,5,6,7,8]
然后我要往删除数组里面第一个元素 按照切片的写法应该是
laplace = laplace[1:]
而javascript 可以使用unshift()方法来实现 也可以使用我这里说到的类似于切片操作的 splice()方法
laplace.splice(0,1);
返回被删除的第一个元素。
splice()方法 第一个参数代表操作数组的起始位置,第二个参数代表删除元素的个数,第三个参数往后,是要添加到数组里的值。
那么如果要删除该数组里面的最后一个参数可以使用
laplace.splice(laplace.lenth-1,1);
也不用去记shift() and unshift()类似的api了。感觉是不是有点方便?
然而这里要特别注意一下。。python切片的抽象等级远远高于 这里的仅仅能对数组使用的splice方法。 所以 使用的时候 还请注意。