2011-10-05 4 views
-3

리스트에 단어를 저장하고이를 random.choice()으로 선택하는 세대 프로그램을 수정하는 방법은 이전에 import random입니까?리스트에 단어를 저장하고 random.choice()로 선택하는 세대 생성 프로그램을 수정하십시오.

어디서 실수입니까? 그 이상한 물건이 그 코드 진행의 모든 ​​종류가있다

def generate_model(cfdist,word,num=15): 
    for i in range(num): 
     word=random.choice.im_class(cfdist 
         [word].keys()) 


>>> generate_model(cfd,'living') 
+1

더 많은 코드를 보여 주어야합니다. cfdist 란 무엇입니까? –

답변

1

올바른 작동하지 :

def generate_model(cfdist,word,num=15): 

당신은 사전에서 찾아 볼 수있는 열쇠로 단어를 사용합니다.

word= 

변경 하시겠습니까? 임의의 룩업 결과를 다음 룩업의 키로 의도적으로 연결하고 있습니까?

random.choice 

의도적 체인 경우,이 권리이지만, 같은 dict에서 단어의 무리를 원하는 경우 random.sample을 원한다.

.im_class(

이것은 완전히 필요하지 않습니다. random.choice(처럼 부르세요. random docs

cfdist[word] 

당신은 전달 word의 값 키와 동일로 cfdist의 값을 얻고있는 예 봐 (이 경우, living) 처음으로, 그 핵심은 같다 그 후에 choice의 결과. 그게 당신이 의도 한 것입니까? cfdist의 각 값이 dict 경우

.keys()) 

이 작동합니다. 이제

, 당신은 목록

단어를 저장하는

를 싶은 말은하지만 정확하게 당신이 원하는 것을 확실하지 않다 때문에, 나는 두 가지 예를들 수 있습니다.

def generate_model(cfdist,word,num=15): 
    return random.sample(cfdist[word].keys(), num) 
:

def generate_model(cfdist,word,num=15): 
    words = [] 
    # you can add the starting word with words.append(word) here if you want 
    for i in range(num): 
     word=random.choice(cfdist[word].keys()) 
     words.append(word) 
    return words 

두 번째, 나는 그냥없는 반복과 dict 15 개 무작위로 단어를 원하는 가정합니다 : 난 그냥 말을 집계하지만, 아무 것도 변경하지거야, 첫 번째

그런 다음 단어 목록을 얻으려면

>>> words = generate_model(cfd,'living') 

으로 전화하십시오.

관련 문제