2017-12-23 6 views
0

저는이 파이썬 코드를 사용하여 3 단어를 선택하여 5 단어의 메시지를 무작위로 구성합니다.목록에서 무작위 메시지 생성

def randomMessage():  
    word = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird'] 

    return (random.sample(word, 3)) 

와는 코드의 후반부에, 나는

" + randomMessage() + " 

를 사용하여 메시지에 넣고 싶어하지만 말을 나에게 "str에해야하지 목록을"오류를 제공합니다 .

어떻게 해결할 수 있습니까?

+0

"+ STR (randomMessage()) + " – smoggers

+2

@smoggers, 나쁜 조언. – alexis

+1

나는 이것이 다른 마스크 아래에서 많은 복제본이라는 것을 100000 % 확신한다. –

답변

3

liststr.join을 사용해야합니다. 줄 것이다

' '.join(random.sample(word, 3)) 

:

>>> ' '.join(random.sample(word, 3)) 
'Bird Dog Cat' 

, random.sample(word, 3) 리턴한다 list를 호출 그래서 모든 요소들 사이의 공간과 더불어, string로 변환

, 당신은 같은 것을 할 필요가

답을 완성하려면 randomMessage() 함수의 끝에서 행을 수정해야합니다. 일 :

def randomMessage(): 
    word = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird'] 
    return ' '.join(random.sample(word, 3)) 

일부 테스트는 지금 string을 반환한다는 것을 보여

>>> randomMessage() 
'Animal Queen Bird' 
>>> randomMessage() 
'Cat Dog Animal' 
>>> randomMessage() 
'Animal Cat Bird' 
>>> randomMessage() 
'Bird Dog Animal' 
1

귀하의 방법은 목록이 아닌 문자열을 반환합니다. 가장 빠른 방법은

return " ".join(random.sample(word, 3)) 

그것을 해결하기 위해 아니면 좀 더 명시 적으로

def random_message(): 
    words = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird'] 
    three_words = random.sample(words, 3) 
    return " ".join(three_words) 

참고 할 수 있습니다 : 파이썬에서이 스타일을 사용 random_message하지 CamelCase를 randomMessage