2016-12-19 42 views
6

Ben okulda yapmanız gereken şey ile küçük bir sorun var ...Bir dizeden ilk ve son sözcükler nasıl çıkarılır?

Benim görevim olan bir kullanıcı (text = raw_input()) bir ham giriş dizesi almak ve bunu ilk ve son kelimeleri yazdırmak gerekiyor dize.

Birisi bana yardım edebilir mi? Ben

+1

Son kelimeden son sözü mi kastediyorsunuz? Lütfen örnek örneğini belirtin –

+0

"Merhaba Dünya!" Ifadesindeki son kelime, '' Dünya! '' Ya da '' Dünya '' kelimesi? –

cevap

11

Sen öncelikle str.split kullanarak kelimelerin list dizesi dönüştürmek ve daha sonra hoşuna erişebilir:

Python 3.x itibaren
>>> 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') 

, sadece yapabilirsiniz:

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

Teşekkürler adam takdir ediyorum :) Teşekkürler ben de ne olduğunu öğrendim split() –

1

Sen yapacağını ... bir cevap bütün gün seyir olmuştur:

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

Haydi girişiniz x diyelim. Sonra yapabilirsiniz:

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

['bölüm '] (https://docs.python.org/2/library/stdtypes.html#str.partition) sadece Bir kez x 'doğrayın (böylece, ilk kelimeyi, sonra da cümlenin kalanını, son sözü değil). – wildwilhelm

+0

@wildwilhelm: Bu cevabın, * nihai kelimelerin * tanımı konusunda netlik olmadığı için OP'nin beklediği bir ihtimal vardır. Şüphe duymadan, cevap aşağı seçilmemelidir –

+1

Doğru, soru ifadesinin belirsiz olduğunu kabul ediyorum. Downvote geri çekildi. – wildwilhelm

1

Bazı diyebilirsiniz, orada asla çok fazla cevap düzenli ifadeler kullanarak (bu durumda, bu kötü çözümleri benziyor ..):

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

Eğer varsa Python 3'ü kullanarak, bunu yapabilirsiniz: ilk ve son dışındaki

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

tüm kelimeler değişken middle girecek.

+0

Cool, ilk kez bu özelliği görüyorum. – quapka

+0

Güzel. Eğer orta sözcükler de gerekliyse, çok temiz bir yaklaşımdır –

+1

Bu, güzeldir, ancak 1 kelimelik bir cümlenin (büyük ihtimalle 1 kelimenin hem ilk hem de son sözcük olarak geri döndürülmesi gerekir) kenar hatasında başarısız olur. –

İlgili konular