Python之對list進行切片

2021-10-23 09:22:43 字數 1448 閱讀 5173

取乙個list的部分元素是非常常見的操作。比如,乙個list如下:

>>

> l =

['adam'

,'lisa'

,'bart'

,'paul'

]

取前3個元素,應該怎麼做?

笨辦法:

>>

>

[l[0

], l[1]

, l[2]

]['adam'

,'lisa'

,'bart'

]

之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。

取前n個元素,也就是索引為0-(n-1)的元素,可以用迴圈:

>>

> r =

>>

> n =

3>>

>

for i in

range

(n):..

)...

>>

> r

['adam'

,'lisa'

,'bart'

]

對這種經常取指定索引範圍的操作,用迴圈十分繁瑣,因此,python提供了切片(slice)操作符,能大大簡化這種操作。

對應上面的問題,取前3個元素,用一行**就可以完成切片:

>>

> l[0:

3]['adam'

,'lisa'

,'bart'

]

l[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素。

如果第乙個索引是0,還可以省略:

>>

> l[:3

]['adam'

,'lisa'

,'bart'

]

也可以從索引1開始,取出2個元素出來:

>>

> l[1:

3]['lisa'

,'bart'

]

只用乙個 : ,表示從頭到尾:

>>

> l[:]

['adam'

,'lisa'

,'bart'

,'paul'

]

因此,l[:]實際上複製出了乙個新list。

切片操作還可以指定第三個引數:

>>

> l[::

2]['adam'

,'bart'

]

第三個引數表示每n個取乙個,上面的 l[::2] 會每兩個元素取出乙個來,也就是隔乙個取乙個。

把list換成tuple,切片操作完全相同,只是切片的結果也變成了tuple。

python對一維list進行排序

用到了python中的sort函式。a 2 5,4 c sorted a,reverse true print c 輸出結果為 5,4,2 a 2 5,4 b sorted a,reverse false print b 輸出結果為 2,4,5 sorted object,key,reverse r...

對列表List進行賦值

今天講講python中對list進行賦值的方法,並會接下來給出例項和截圖詳解。這個問題源自於我想對乙個某乙個區間內的值進行均勻劃分成50份,對此,我想到了用list,並用迴圈賦值來實現.並將區間內的值用區間的中值來表示,很顯然,算出來的中值肯定會有很多的小數字數,所以我們需要對得到的數進行處理,保留...

對list進行分組操作

分組演算法 public class testarraylistgroupbykey 2 分組演算法 map skuidmap new hashmap for skuvo skuvo skuvolist else 3 遍歷map,驗證結果 for long skuid skuidmap.keyset...