很多小夥伴對于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三種參數的不同處理辦法,我們可以根據對應的要點來解決參數過長的問題,也可以進一步引申出其他的參數問題。