樓主問的是列表,及python中所有可迭代型別型別的 切片問題, 由於我電腦上裝的是python 3.x, 在 range() 這個內建函式上和淚珠的2.x 有些許差別:2.x: range(start : stop : step) 生成 乙個 從start開始(包含start)到stop結束(不包含stop),步長為 step 的列表(下稱:list型別)
3.x range(start : stop : step) 生成乙個 序列生成器(range 型別),在這裡,range自成一種型別了, 不過 start, stop, step 的意義是一樣的。
以上是兩個版本python的區別,扯開一句,python 3.x 和2.x 的不相容在前幾年3.x 剛推出是 短時間內看對python語言是一種傷害, 一種**。 但是站在2016的開端來看,各種常用的庫都已經支援了3.x, 且3.x版本比2.x 版本在 各個方面都高階和合理了很多,所以建議初學者都從3.x 開始學習python. range 的在3.x的改進就能看出: 在2.x 中產生乙個list , 而3.x 中產生的是乙個 生成器,在記憶體優化上更高一層。
好了扯遠了, 寫這些主要是為了說明 用3.x 演示**和2.x 的區別: 在3.x 中 如果想保證 開頭宣告的l 是list ,如下:l = list(range(1,101))
我們具體解釋下 range(start : stop : step) 中三個暫稱為 引數的作用和用法,以及一些小技巧:
1, start: 如上所說, 為列表(3.x 為 range 型別)的開始, 切片或者宣告時 可以省略,省略預設 start為0。
2, stop: 列表的結束(不包含), 切片時可以省略,省略預設為列表的最後。
3, step: 為步長,即 列表中元素之間的差, 切片或者宣告時 可以省略, 預設為1。
下面就range函式的各種省略的組合用** 一一說明:>>> list(range(3)) ## 宣告時 省略 start 和 step
[0, 1, 2]
>>> list(range(1,3)) ## 宣告時 省略 step
[1, 2]
>>> list(range(1,11,2)) ## 步長為2
[1, 3, 5, 7, 9]
>>> list(range(11,1,-2)) ## 步長為負數
[11, 9, 7, 5, 3]
列表切片的start stop step 和 range函式 差不多:>>> l= list(range(1,21)) ##宣告 列表 l
>>> print (l)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> print(l[2:6]) ## 省略 step (步長), step預設為1
[3, 4, 5, 6]
>>> print(l[2:10:2]) ## 顯式宣告 step 為2
[3, 5, 7, 9]
>>> print(l[10:2:-2]) ## 顯式宣告 step 為 -2
[11, 9, 7, 5]
>>> print(l[:19]) ## 省略 start, start 預設為0; 省略步長 step, 預設為1
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> print(l[0::1]) ## 省略 stop , 預設到列表的結尾。
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
python 切片 ,字串逆序
每天一點點 python 切片 字串逆序 原始字串 name abcdeabcde 說明 字串下標從0開始,即第0個字元是a,第2個字元是c,類推 1 字串長度 len name 輸出結果 10 2 name 2 7 取輸出結果 cdeab 注意 左包含,右不含 起始位置 結束位置 1 步長 3 全...
python 切片 Python 列表切片
想必很多人都使用過列表的切片,通過切片可以從列表中獲取乙個或多個元素,但你真的了解切片?一 一般玩法 name a b c d e f g h name 0 2 獲取 0 2 中間的元素,不包括索引為 2 的元素 a b name 2 從 0 開始切,可省略 0 a b name 1 同樣地,切到最...
pythonint切片 python 切片
切片 list取值的一種方式,在ist中取多個值時,就叫切片 lis list range 1,21 print lis print lis 0 11 print lis 0 11 2 print lis 1 lists 於萍 李夢 王春武 李丹利 for name in lists print n...