2016-12-19 10 views
6

मैं कुछ मैं स्कूल में क्या करने की जरूरत के साथ एक छोटी सी समस्या ... हैस्ट्रिंग से पहले और अंतिम शब्दों को निकालने के लिए कैसे?

मेरे काम है एक उपयोगकर्ता (text = raw_input()) से एक कच्चे इनपुट स्ट्रिंग मिलता है और मुझे लगता है कि के पहले और अंतिम शब्द मुद्रित करने के लिए की जरूरत है स्ट्रिंग।

क्या कोई मेरी मदद कर सकता है? मैं एक जवाब पूरे दिन की तलाश में किया गया है ...

+1

अंतिम शब्द से आपका अंतिम शब्द क्या है? कृपया नमूना उदाहरण –

+0

का उल्लेख करें "हैलो वर्ल्ड!" में अंतिम शब्द है 'स्ट्रिंग' "वर्ल्ड!" या शब्द '' वर्ल्ड ''? –

उत्तर

11

आप सबसे पहले str.split का उपयोग कर शब्दों का list को स्ट्रिंग परिवर्तित करने के लिए है और फिर आप इसे पसंद का उपयोग हो सकता है:

>>> my_str = "Hello SO user, How are you" 
>>> word_list = my_str.split() # list of words 

# first word v    v last word 
>>> word_list[0], word_list[-1] 
('Hello', 'you') 

अजगर 3.x से, आप बस कर सकते हैं:

>>> first, *middle, last = my_str.split() 
+1

धन्यवाद आदमी मैं इसकी सराहना करता हूं :) धन्यवाद, मैंने यह भी सीखा कि क्या विभाजन() –

1

आप करना होगा:

print text.split()[0], text.split()[-1] 
5

मान लें कि x आपका इनपुट है। तो फिर तुम ऐसा कर सकते हैं:

x.partition(' ')[0] 
x.partition(' ')[-1] 
+1

['विभाजन'] (https://docs.python.org/2/library/stdtypes.html#str.partition) केवल तभी होगा एक बार 'x' काट लें (इसलिए, आपको पहला शब्द मिलेगा, और फिर शेष वाक्य, अंतिम शब्द नहीं)। – wildwilhelm

+0

@ विल्डविल्हेम: एक संभावना है कि यह उत्तर ओपी उम्मीद करता है क्योंकि अंतिम शब्द * की परिभाषा पर कोई स्पष्टता नहीं है। संदेह की बात के रूप में, जवाब –

+1

को नीचे वोट नहीं दिया जाना चाहिए, मैं सहमत हूं कि प्रश्न शब्द संदिग्ध है। डाउनवोट वापस ले लिया। – wildwilhelm

1

कुछ लोग कहते हैं हो सकता है, वहाँ कभी नहीं है भी कई जवाब के नियमित अभिव्यक्ति का उपयोग कर (इस मामले में, यह सबसे खराब समाधान की तरह दिखता है ..):

>>> import re 
>>> string = "Hello SO user, How are you" 
>>> matches = re.findall(r'^\w+|\w+$', string) 
>>> print(matches) 
['Hello', 'you'] 
7

आप कर रहे हैं अजगर 3 का उपयोग कर, आप यह कर सकते हैं:

text = input() 
first, *middle, last = text.split() 
print(first, last) 

सभी पहली और आखिरी छोड़कर शब्द चर middle में जाना जाएगा।

+0

कूल, पहली बार मुझे यह सुविधा दिखाई देती है। – quapka

+0

अच्छा। यदि मध्य शब्दों की भी आवश्यकता होती है, तो यह बहुत साफ दृष्टिकोण है –

+1

यह अच्छा है, हालांकि यह 1-शब्द वाक्य के किनारे के मामले में विफल रहता है (जहां तर्कसंगत है कि 1 शब्द पहले और अंतिम शब्द दोनों के रूप में वापस किया जाना चाहिए)। –

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