2014-10-02 3 views
1

단어 목록이 주어지면 파이썬으로 최소한의 쌍을 쉽게 찾을 수 있습니까? 최소 쌍은 하나의 사운드 (파이썬 용어로는 한 문자) 만 다른 두 단어의 쌍입니다. 그래서 같은 목록의 예를 들면 다음과 같습니다파이썬으로 최소 쌍을 찾는 (음성학)

wordlist = ["paka", "baka", "puki", "paki", "suki", "suku"] 

최소한의 쌍 될 것 "할아버지"와 "바카", "puki"와 "파키", "puki"와 "스키", "스키"와 "suku "

저는 Python을 처음 사용하기 때문에 두 개의 문자열을 비교할 때 하나를 제외한 문자와 일치 할 수있는 적합한 함수를 검색하려고했지만 유용한 것을 찾지 못했습니다.

답변

0

간단한 해결책 : 당신은 word1로 목록을 반복하고 다른 모든 단어 (word2)와 비교하십시오. 각 위치에서 차이를 계산합니다. 다음 예제는 아마도 귀하의 작업에 도움이 될 것입니다 ...

wordlist = ["paka", "baka", "puki", "paki", "suki", "suku", "buku","baba","nabab"] 
for n1,word1 in enumerate(wordlist): 
    for word2 in wordlist[n1+1:]: 
     if len(word1)==len(word2): 
      ndiff=0 
      for n,letter in enumerate(word1): 
       if word2[n]!=letter: 
        ndiff+=1 
      if ndiff==1: 
       print word1, word2 
관련 문제