2017-12-09 1 views
0

그래서 단어와 동의어가 포함 된 사전이 있습니다. 그 목적은 문자열의 부분 문자열을 임의의 동의어로 대체하는 것입니다. 여기 내 코드가있다. 내가 입력 "행복 행복 행복" 출력 인 경우사전 시소러스 대체 하위 문자열

import random 
thesaurus = { 
       "happy":["glad", "blissful", "ecstatic", "at ease"], 
       "sad" :["bleak", "blue",  "depressed"] 
      } 
phrase = input("Enter a phrase: ") 
for x in phrase.split(): 

    if x in thesaurus: 
     ran = len(thesaurus[x]) 
     print(len(thesaurus[x])) 
     ranlis = random.randint(0,ran - 1) 
     phrase = phrase.replace(x,str.upper(thesaurus[x][ranlis])) 
print(phrase) 

는 :.

ECSTATIC ECSTATIC ECSTATIC 

나는 그것이마다 다른 동의어를 인쇄 (또는 적어도 내가이 것을 이해 할 수 있도록하려면 무작위). 그래서 :

황홀 할 정도로 행복한 AT는

나는 내 논리의 오류를 이해하지만, 그것을 해결하는 방법을 확실하지 오전 EASE.

답변

0

키는 한 번만 교체하는 것입니다. replace() 함수는 3 개의 매개 변수를 사용하고 세 번째 매개 변수는 대체 할 발생 횟수입니다. So :

phrase = phrase.replace(x,str.upper(thesaurus[x][ranlis]),1)