進行分片的時候,分片的開始和結束點需要進行指定(不管是直接還是間接)。而另外乙個引數(在python 2.3 加入到內建型別)——步長(step length)——通常都是隱式設定的。在普通的分片中,步長是1——分片操作就是按照這個步長逐個遍歷序列的元素,然後返回開始和結束點之間的所有元素。
>>> numbers[0:10:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]在這個例子中,分片包含了另外乙個數字。沒錯,這就是步長的顯式設定。如果步長被設定為比1大的數,那麼就會跳過某些元素。例如,步長為2的分片包括的是從開始到結束每隔1個的元素。
>>> numbers[0:10:2]
[1, 3, 5, 7, 9] numbers[3:6:3] [4]之前提及的捷徑也可以使用。如果需要將每4個元素中的第1個提取出來,那麼只要將步長設定為4即可:
>>> numbers[::4]
[1, 5, 9]當然,步長不能為0——那不會向下執行——但步長可以是負數,即從右到左提取元素:
>>> numbers[8:3:-1]
[9, 8, 7, 6, 5]
>>> numbers[10:0:-2]
[10, 8, 6, 4, 2]
>>> numbers[0:10:-2]
>>> numbers[::-2]
[10, 8, 6, 4, 2]
>>> numbers[5::-2]
[6, 4, 2]
>>> numbers[:5:-2]
[10, 8]在這裡要得到正確的分片結果需要動些腦筋。開始點的元素(最左邊元素)包括在結果之中,而結束點的元素(最右邊的元素)則不在分片之內。當使用乙個負數作為步長時,必須讓開始點(開始索引)大於結束點。在沒有明確指定開始點和結束點的時候,正負數的使用可能會帶來一些混淆。不過在這種情況下python會進行正確的操作:對於乙個正數步長,python會從序列的頭部開始向右提取元素,直到最後乙個元素;而對於負數步長,則是從序列的尾部開始向左提取元素,直到第乙個元素。
python分片賦值 關於 python 分片賦值
首先你要理解什麼是分片,也有的書叫切片 slice 當你需要乙個序列的子串的時候,你就可以使用切片操作 a a b c d e f g 在a這個序列中,如果你想擷取裡面 c d e 這個子串行,那麼你就可以使用切片a 2 5 它的語法形式是a start end 這裡有乙個區間邊沿取值的問題。首先你...
python分片的步長 Python的分片操作
在列表中有一種操作叫做分片 一般形式 l2 4,6,1,7,9 e l2 2 4 print e 該 執行結果如下 1,7 從下標來看可以很容易的知道下標二對應的正好是元素3,值1 但是,卻沒有下標4的元素5,值9 所以,我們得出乙個結論 python的分片操作含左不含右 操作範圍 m,n 實際範圍...
lwip tcp 收發分片處理
1,發端 1 會按照設定的最大segment對於應用層下發的資料報進行分片 最大segment長度 u16 t mss maximum segment size 2 分片操作 do writemore中的tcp write 迴圈組裝segment while pos len 2,收端 只需要按照se...