2012-04-13 2 views
0

목록 (내가 할 수있는)에서 단어 유사성의 가장 작은 평균 값을 반환해야하지만 단어 값을 평균 값에 할당하는 방법을 모르겠습니다. , 예를 들어 목록에 ['my', 'bro', 'myline'] 물론 동생이 최소한의 단어 비교 값을 가지고 따라서 내가 비교 값 (나는 이미 방법을 알고 ... 'bro' 반환해야합니다 ... 그냥 중첩 내에서 값을 할당하는 방법을 알아야합니다 루프).중첩 루프 내에서 가장 작은 평균을 반환하는 방법

final_tup =() 
ave_list = [] 
for word in final_list: 
    word1 = word 
    sum = 0 
    for word in final_list: 
     word2 = word 
     if word2 != word1: 
      num = cossim(word1,word2) 
      sum = sum + num 
    average = float(sum/(len(final_list)-1)) 
    ave_list.append(average) 
+2

'어디서 할당 loops' 중첩 내에서 값을 할당하는 방법을 알 필요가? 정확히 무엇이 누락 되었습니까? 코드는 거의 완벽하지는 않지만 거의 완벽합니다. 미안하지만 정확히 무엇을 요구하고 있는지 이해하지 못한다 : \ – amit

+0

깔끔함에 관해서 :'word_를 통해 루핑하는 대신 final_list에서'for word1을,'final_list'에서'word2를'해야하고, . 아마도 현재하고있는 일 대신'sum + = cossim (word1, word2)'를 사용해야 할 것입니다. – Dougal

+0

비교되는 각 단어 1에 대해 ... 그 단어를 할당하거나 AVERAGE 비교 값과 연결하고 싶습니다. –

답변

0
from operator import itemgetter 

# Make the word list. 
word_list = ['my', 'bro', 'myline'] 

# Do your code here to create ave_list 

# Fetch the min index and min value of ave_list 
min_index, minvalue = min(enumerate(ave_list), key = itemgetter(1)) 

# Now get the word at the same min index location. 
min_word = word_list[min_index] 
+0

기다려라. .. 우리가 동일한 최소값 ? 출력물에 하나 이상의 단어를 어떻게 인쇄합니까? –

+0

예를 들어 인덱스 1과 11의 최소 평균 평균값이 같으면 어떻게 출력합니까? –

+0

내일은 수정할 수 있지만 평균을 저장하기 위해 NumPy 배열을 사용하도록 전환하는 것이 좋습니다. – ely