2009-10-08 13 views
22
में एक सूची ट्रिम करने के लिए कैसे

मैं पहली बार 5 तत्वों चाहते हैं मान लीजिए मैं एक्स तत्वोंअजगर

[4,76,2,8,6,4,3,7,2,1...] 

के साथ एक सूची है। जब तक कि इसमें 5 से कम तत्व न हों।

[4,76,2,8,6] 

यह कैसे करें?

+3

भी देखें: http://stackoverflow.com/questions/509211/good-primer- फॉर-पायथन-स्लाइस-नोटेशन –

उत्तर

59

तुम बस [:5] साथ यह subindex यह दर्शाता है (तक) पहले 5 तत्वों है कि आप चाहते हैं।

>>> [1,2,3,4,5,6,7,8][:5] 
[1, 2, 3, 4, 5] 
>>> [1,2,3][:5] 
[1, 2, 3] 
>>> x = [6,7,8,9,10,11,12] 
>>> x[:5] 
[6, 7, 8, 9, 10] 

इसके अलावा, संख्या के दाईं तरफ पेट डालने के बाद n वें तत्व से गिनती का मतलब है - मत भूलना कि सूचियों 0-आधारित कर रहे हैं!

>>> x[5:] 
[11, 12] 
+10

इसे आमतौर पर स्लाइसिंग के रूप में जाना जाता है। – Steve314

+3

यह एक * नई * सूची बनाता है, यह मौजूदा एक को ट्रिम नहीं करता है। जगह में ट्रिम करने के लिए, स्लाइस पर 'del' का उपयोग करें; जैसे 'del listobj [-x:]' सूची ऑब्जेक्ट से अंतिम * x * तत्वों को हटा देगा। –

0
l = [4,76,2,8,6,4,3,7,2,1] 
l = l[:5] 
+3

बस वास्तविक कोड में अपनी सूचियों 'सूची' को कॉल न करें! –

+0

@too निश्चित रूप से, यह केवल प्रदर्शन उद्देश्यों के लिए बनाया गया है: डी – mgbowen

1
>>> [1,2,3,4,5,6,7,8,9][:5] 
[1, 2, 3, 4, 5] 
>>> [1,2,3][:5] 
[1, 2, 3] 
20

यह की प्रतियां बनाने के बिना जगह में एक सूची ट्रिम करने के लिए, del का उपयोग करें:

>>> t = [1, 2, 3, 4, 5] 
>>> # delete elements starting from index 4 to the end 
>>> del t[4:] 
>>> t 
[1, 2, 3, 4] 
>>> # delete elements starting from index 5 to the end 
>>> # but the list has only 4 elements -- no error 
>>> del t[5:] 
>>> t 
[1, 2, 3, 4] 
>>>