2010-08-15 14 views
62

पाइथन में एक सबस्ट्रिंग फ़ंक्शन ढूंढ सकता है।आउटपुट पहले स्ट्रिंग में पहले 100 वर्ण

कहें कि मैं स्ट्रिंग में पहले 100 वर्णों को आउटपुट करना चाहता हूं, मैं यह कैसे कर सकता हूं?

मैं इसे सुरक्षित रूप से भी करना चाहता हूं, अगर स्ट्रिंग 50 वर्ण है तो यह विफल नहीं होना चाहिए।

+2

इस प्रश्न का अनुवर्ती है: [पायथन स्लाइस नोटेशन के लिए अच्छा प्राइमर] (http://stackoverflow.com/questions/509211/good-primer-for-python-slice-notation) –

+1

आपका क्या मतलब है " वर्ण"? कोड अंक, grapheme क्लस्टर या कोड इकाइयों? स्लाइसिंग कोड इकाइयों की गणना करेगा, जो वांछित परिणाम नहीं दे सकता है। – Philipp

उत्तर

96
print my_string[0:100] 
+1

आप 'my_string [: 100]' भी कर सकते हैं, है ना? – nnyby

48

python tutorial से:

पतित टुकड़ा सूचकांक नियंत्रित किया जाता है शान से: एक सूचकांक कि बहुत बड़ी स्ट्रिंग आकार, एक की जगह है निचले बाएं छोटे बाध्य से कम एक खाली खाली वाई स्ट्रिंग

तो x[:100] का उपयोग करना सुरक्षित है।

4

सरणी का टुकड़ा [first:last+1] के साथ किया जाता है।

एक चाल जो मैं बहुत अधिक उपयोग करता हूं वह इलिप्स के साथ अतिरिक्त जानकारी इंगित करता है। इसलिए, यदि आपका क्षेत्र एक सौ वर्ण है, मैं का प्रयोग करेंगे:

if len(s) <= 100: 
    print s 
else: 
    print "%s..."%(s[:97]) 

और हाँ, मैं जानता हूँ कि ()% स्वरूपण ऑपरेटर के लिए इस मामले में ज़रूरत से ज़्यादा है, यह सिर्फ मेरी शैली है।

+0

मुझे लगता है कि यह विचार के लिए भोजन के रूप में था, लेकिन ओपी के मामले में मैं शायद ऐसा करने का सुझाव नहीं दूंगा। परिणाम एक स्ट्रिंग होगी जो आपको सामग्री को और ट्रिम करने या उस तरह कुछ करने के लिए जांच करनी होगी।इस मामले में मैं कल्पना करता हूं कि कोई भी उस संख्या को परिवर्तनीय होना चाहेगा, और नतीजा हमेशा सही होगा, या संख्या को ठीक करने के लिए या हैंडलिंग या तो सार्थक, या त्रुटि उत्पन्न करना या असफलता के मामले में गर्व से वापसी करना। मैं मानव पठनीय जानकारी देने के अलावा कई मामलों के बारे में नहीं सोच सकता, जहां मैं एक स्ट्रिंग में मनमाने ढंग से पाठ जोड़ना चाहता हूं। –

6

फिलिप की चिंता (टिप्पणी में) उत्तर देने के लिए, टुकड़ा करने की क्रिया यूनिकोड स्ट्रिंग्स के लिए ठीक काम करता है भी

>>> greek=u"αβγδεζηθικλμνξοπρςστυφχψω" 
>>> print len(greek) 
25 
>>> print greek[:10] 
αβγδεζηθικ 

आप एक स्क्रिप्ट के रूप में उपरोक्त कोड को चलाने के शीर्ष

# -*- coding: utf-8 -*- 
पर इस लाइन डालने के लिए चाहते हैं

अपने संपादक utf-8 में बचाने नहीं करता है, सही एन्कोडिंग

+1

आपके उत्तर को अपमानजनक नहीं है, लेकिन यूनानी, 'ς' और 'σ' में केवल एक ही अक्षर हैं, एक ही अक्षर हैं :-) – paxdiablo

+3

@paxdiablo, doh! मैंने उन्हें विकिपीडिया पेज से कॉपी किया। भाग्यशाली मैंने तब वैरिएबल 'ग्रीक_एल्फाबेट' नाम नहीं दिया :) –

1

स्थानापन्न तो पिछले उदाहरण के अधिकांश मामले में एक अपवाद अपने स्ट्रिंग काफी देर तक नहीं है बढ़ा देंगे।

एक और दृष्टिकोण 'yourstring'.ljust(100)[:100].strip() का उपयोग करना है।

यह आपको पहले 100 वर्ण देगा। यदि आपकी स्ट्रिंग अंतिम वर्ण रिक्त स्थान हैं तो आपको एक छोटी स्ट्रिंग मिल सकती है।

संबंधित मुद्दे