天天看點

python 外部參數過長_python中slice參數過長如何處理?

python 外部參數過長_python中slice參數過長如何處理?

很多小夥伴對于slice參數的概念了解停留在概念上,切片的參數有三個,分别是step 、start 、stop 。因為參數的值也是多變的,是以我們需要對它們進行下一步的處理。在之前的slice講解中我們提到清單資料過長的問題,其中在參數中也有這樣的問題存在。下面我們就step 、start 、stop 三個參數的分别處理展開講解,幫大家深入了解slice中的參數問題。

1.step 的處理if (r->step == Py_None) {

*step = 1;

} else {

if (!_PyEval_SliceIndex(r->step, step)) return -1;

if (*step == 0) {

PyErr_SetString(PyExc_ValueError, "slice step cannot be zero");

return -1;

}

if (*step 

*step = -PY_SSIZE_T_MAX;

}

2.start 的處理

if (*start 

if (*start 

if (*start >= length)

*start = (*step 

}

3.stop 的處理

if (*stop 

if (*stop 

if (*stop >= length)

*stop = (*step 

}

注意:

指定的區間是左開右閉型

從頭開始,開始索引數字可以省略,冒号不能省略

到末尾結束,結束索引數字可以省略,冒号不能省略。

步長預設為1,如果連續切片,數字和冒号都可以省略。

以上就是python中slice三種參數的不同處理辦法,我們可以根據對應的要點來解決參數過長的問題,也可以進一步引申出其他的參數問題。