2016-12-19 1 views
6

는 내가 학교에서해야 할 뭔가 작은 문제를 가지고 ...문자열에서 첫 번째와 마지막 단어를 추출하는 방법은 무엇입니까?

내 작업 인 사용자 (text = raw_input()) 에서 원시 입력 문자열을 얻고 그 첫 번째와 마지막 단어를 인쇄해야 끈.

누군가 나를 도와 줄 수 있습니까? 나는

+1

마지막 단어는 마지막 단어입니까? 샘플 예를 언급하십시오 –

+0

''Hello World! "'문자열''World! ''또는''World"'의 마지막 단어입니까? –

답변

11

당신은 첫째로 str.split를 사용하여 단어의 list에 문자열을 변환해야하고 당신이 그것을 좋아에 액세스 할 수 있습니다 :

파이썬 3.x를에서
>>> 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') 

, 당신은 간단하게 할 수 있습니다

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

고맙습니다. 고맙습니다. 고맙습니다. 감사합니다. :) split()님께 감사드립니다. –

1

당신은 할 것 ... 대답 하루 종일 찾고있다 :

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

예를 들어, x을 입력이라고합시다. 그런 다음 당신이 할 수

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

['partition'] (https://docs.python.org/2/library/stdtypes.html#str.partition)은 'x'를 한 번 자르십시오 (그래서, 첫 번째 단어를 얻은 다음 마지막 단어가 아닌 나머지 문장을 얻습니다). – wildwilhelm

+0

@wildwilhelm :이 답변은 * 최종 단어 *의 정의가 명확하지 않기 때문에 OP가 기대하는 것일 수 있습니다. 의심의 여지가 있듯이, 대답은 아래로 내려지지 않아야합니다. –

+1

사실, 질문 문구가 모호하다는 데 동의합니다. Downvote retracted. – 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 단어를 반환해야하지만 틀림없이 실패합니다. –

관련 문제