slice()函数创建一个slice对象
Posted 大家猴啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了slice()函数创建一个slice对象相关的知识,希望对你有一定的参考价值。
slice()函数创建一个slice对象,该对象可用于对字符串,列表,元组等进行切片。
slice对象用于切片给定的序列(字符串,字节,元组,列表或范围)或任何支持序列协议的对象(实现__getitem__()和__len__()方法)。
slice 语法:
class slice(stop)
class slice(start, stop[, step])
my_slice = slice(5)
my_slice2 = slice(2, 10, 2)
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(arr[my_slice]) # [0, 1, 2, 3, 4]
print(arr[my_slice2]) # [2, 4, 6, 8]
print(my_slice.start,my_slice.stop,my_slice.step)
print(my_slice2.start,my_slice2.stop,my_slice2.step)
###### 0123456789012345678901234567890123456789012345678901234567890\'
record = \'....................100 .......513.25 ..........\'
# cost = int(record[20:23]) * float(record[31:37])
SHARES = slice(20, 23)
PRICE = slice(31, 37)
cost = int(record[SHARES]) * float(record[PRICE])
print(cost)
Array.prototype.slice.call()
MDN中对于Array.prototype.slice.()
的介绍中,提到了类数组对象。以下是原文:
slice
方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组。你只需将该方法绑定到这个对象上。 一个函数中的 arguments
就是一个类数组对象的例子。
function list()
return Array.prototype.slice.call(arguments);
var list1 = list(1, 2, 3); // [1, 2, 3]
除了使用 Array.prototype.slice.call(arguments)
,你也可以简单的使用 [].slice.call(arguments)
来代替。
所以arguments并不是真正的数组对象,只是与数组类似而已,所以它并没有slice这个方法,而Array.prototype.slice.call(arguments, 1)可以理解成是让arguments转换成一个数组对象,让arguments具有slice()方法。
同理可知,我们可以给Array.prototype.slice.call(arguments)
加上第二个参数。
function list()
return Array.prototype.slice.call(arguments, 1);
var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
以上是关于slice()函数创建一个slice对象的主要内容,如果未能解决你的问题,请参考以下文章
关于在函数中使用Array.prototype.slice.call而不是直接用slice
将函数的实际参数转换成数组的方法,习惯用Array.prototype.slice.call(arguments)
slice,Array.prototype.slice,Array.protyotype.slice.call