स्ट्रिंग से अंतिम वर्ण निकालें


508

मान लीजिए कि मेरा स्ट्रिंग 10 वर्ण लंबा है।

मैं अंतिम चरित्र कैसे निकालूं?

यदि मेरा स्ट्रिंग है "abcdefghij"(मैं 'j'चरित्र को प्रतिस्थापित नहीं करना चाहता , क्योंकि मेरे स्ट्रिंग में कई 'j'वर्ण हो सकते हैं ) मैं केवल अंतिम चरित्र चाहता हूं। इसके बावजूद कि यह क्या है या कितनी बार होता है, मुझे अपनी स्ट्रिंग से अंतिम चरित्र को हटाने की आवश्यकता है।


जवाबों:


832

सरल:

st =  "abcdefghij"
st = st[:-1]

एक और तरीका भी है जो दिखाता है कि यह चरणों के साथ कैसे किया जाता है:

list1 = "abcdefghij"
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

यह भी उपयोगकर्ता इनपुट के साथ एक तरीका है:

list1 = input ("Enter :")
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

एक सूची में अंतिम शब्द को दूर करने के लिए:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)

3
हां, st[-1]केवल अंतिम पात्र हैst
सिरिल

5
वास्तव में वह टुकड़ा अभी भी काम करेगा भले ही stखाली हो। ठीक है, यह अभी भी एक खाली स्ट्रिंग लौटेगा, लेकिन आपको कोई त्रुटि नहीं मिलेगी।
किंडल

1
क्या होगा यदि आपके पास शब्दों की सूची है और आप हर शब्द के अंतिम चरित्र को हटाना चाहते हैं? [नीला, लाल, हरा] => [blu, re, gree]?
जेलिसे

5
[i[:-1] for i in ['blue','red','green']]
साइरिल

3
उदाहरणों को देखते हुए, यह उल्लेख के लायक है कि सूचियों को बदलने योग्य है और list.pop()सूचियों के साथ काम करते समय यह विधि जाने के लिए रास्ता है, क्योंकि यह जगह में पिछले आइटम को हटा देता है O(1), जबकि [:-1]स्लाइसिंग O(n-1)समय में अंतिम तत्व के बिना सूची की एक प्रतिलिपि बनाता है। प्लस O(n-1)स्पेस। तार अपरिवर्तनीय हैं - इसलिए जोड़ने के लिए कुछ भी नहीं।
दिमित्री

19

आप जो करने की कोशिश कर रहे हैं वह पायथन में स्ट्रिंग स्लाइसिंग का विस्तार है :

कहते हैं कि सभी तार 10 की लंबाई के हैं, अंतिम चार को हटाया जाना चाहिए:

>>> st[:9]
'abcdefghi'

अंतिम Nवर्ण हटाने के लिए :

>>> N = 3
>>> st[:-N]
'abcdefg'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.