取乙個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...