2017-11-06 15 views
0

총 파이썬 초보자의 또 다른 질문입니다.Python - 특정 문자열 찾기 [적어도 2 단어 이상]

사용자가 5 개의 다른 단어/문장을 입력 할 수 있습니다. 사용자가 5를 입력하면 사용자가 5 개의 텍스트 중 하나를 다시 입력하고 프로그램이이 문자열을 배열에서 제거합니다. 사용자가 다른 문자열을 추가하고 직접 추가합니다. 인덱스 = 0

그러나이 배열을 통해 실행하고 배열의 문자열 중 적어도 2 단어를 찾으려면 문제가 시작됩니다.

Text = [] 
for i in range(0, 5): 
    Text.append(input('Enter the text: ')) 

    print (Text) 
for i in range(0, 1): 
    Text.remove(input('Enter one of the texts you entered before: ')) 
    print (Text) 

for i in range(0, 1): 
    Text.insert(0,input('Enter Some Text: ')) 
    print (Text) 

for s in Text: 
    if s.isspace(): 
     print(Text[s]) 

출력 :

Enter the text: A 
['A'] 
Enter the text: B 
['A', 'B'] 
Enter the text: C D 
['A', 'B', 'C D'] 
Enter the text: E 
['A', 'B', 'C D', 'E'] 
Enter the text: F 
['A', 'B', 'C D', 'E', 'F'] 
Enter one of the texts you entered before: F 
['A', 'B', 'C D', 'E'] 
Enter Some Text: G 
['G', 'A', 'B', 'C D', 'E'] 
Press any key to continue . . . 

그래서, 내 코드는 아무것도하지 않는다, 내가 문자열 중 적어도 2 개의 단어 및 인쇄하는 모든이있는 경우 어떻게 든 찾아야 말.

+0

될 수 있을까? 그렇다면 split() 함수는 문자열을 취하여 공백없이 문자열 목록을 반환합니다. 예 : my_string = "hello world".split() then my_string = [ "hello", "world"] – MtWoRw

답변

0

그래서 코드는 아무 것도하지 않습니다. 문자열 중 적어도 2 개 이상의 단어가 있고 그 단어를 모두 인쇄하면 어떻게 든 찾을 필요가 있습니다.

아마도 목록을 반복하여 각 문자열을 분리하십시오. 그런 다음 결과 합이 1보다 큰 경우 결정 :

text_list = ['G', 'A', 'B', 'C D', 'E'] 

for i in range(len(text_list)): 
    if len(text_list[i].split(' ')) > 1: 
     print(text_list[i]) 

리스트 통합 사용 : 위의 코드에서

x = [w for w in text_list if len(w.split(' ')) > 1] 
print(x) 
+0

대단히 감사합니다. 이제 작동하고 이제 어떻게 작동하는지 이해했습니다. –

0
for s in Text: 
if s.isspace(): 
    print(Text[s]) 

,들들 수 귀하의 예제에서 예를 들어 전체 문자열입니다 'CD'와이 문자열은 공백이 아닙니다.

s에 두 개 이상의 단어가 있는지 확인하려면 .split ('')을 사용할 수 있지만 그 전에 문자열을 .strip()하여 테두리에서 공백을 삭제해야합니다. 위의 예에서

s = 'Hello World ' 
print(s.strip().split(' ')) 
>>> ['Hello', 'World'] 

이들 두 공간이 있으므로 경계 공간이며, 다음 분할 당신에게 공백으로 분리 된 문자열의 목록을 제공하기 때문에 스트립은 마지막 공간을 삭제합니다.

그래서 문제에 대한 솔루션은 하나의 입력 값이 여러 단어인지 확인하려고

for s in Text: 
    if len(s.strip().split(' ')) > 1: 
     print(s.strip().split(' '))