मैं अजगर में एक स्ट्रिंग से अंतिम 3 वर्णों को निकालने की कोशिश कर रहा हूं, मुझे नहीं पता कि ये वर्ण क्या हैं इसलिए मैं उपयोग नहीं कर सकता rstrip, मुझे किसी भी सफेद स्थान को हटाने और ऊपरी-मामले में बदलने की आवश्यकता है
एक उदाहरण होगा:
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()
यह काम करता है और मुझे BS12 देता है जो कि मैं चाहता हूं, हालांकि अगर अंतिम 4 और 3 अक्षर समान हैं तो foo = "BS11 1AA"मैं दोनों को ढीला करता हूं जैसे कि मुझे बस मिलता है'BS'
के उदाहरण हो fooसकते हैं:
BS1 1AB
bs11ab
BS111ab
स्ट्रिंग 6 या 7 वर्ण हो सकती है और मुझे अंतिम 3 छोड़ने की आवश्यकता है (कोई सफेद स्थान नहीं मानते हुए)
कोई सुझाव?
''.join(foo.split())है तो इससे बेहतर हैfoo.replace(' ', '')क्योंकि यह वर्ण के अलावा किसी भी व्हाट्सएप चरित्र को हटा देता है' '(विशेष रूप से, गैर-ब्रेकिंग स्पेस भी हटा दिए जाते हैं)। यह कहा गयाreplace()है कि शायद बहुत तेज है, इसलिए इसका उपयोग किया जा सकता है, अगर कहते हैं, इनपुट तार ASCII में एन्कोड किए जाने के लिए जाने जाते हैं, जिसमें केवल एक ही अंतरिक्ष वर्ण होता है (मैं यहां पायथन 2 शब्दावली का उपयोग कर रहा हूं।)