파이썬 리스트 랜덤 추출을 할 때, 난수 n의 개수만큼 랜덤 추출 (코드 봐 주세요...)
조회수 721회
아직 코딩이 미숙한 학생입니다. 리스트에서 n(1<=n<=18)개만큼 랜덤으로 추출(중복 가능하게) 하려고 하는데 오류가 생깁니다... 이런 경우에서는 어떻게 코드를 짜야 하는지 알려 주셨으면 합니다.
import random
menu=['빵','치킨','불고기','새우','치즈','양상추','토마토','케첩','마요네즈','타르타르','감자튀김','너겟','치즈 스틱','콜라','사이다','오렌지 주스','커피','우유']
n=[random.randint(1, 18)]
m=[random.choice(menu) for i in range(n)]
print(m)
일단 문제가 되는 부분의 코드는 이렇습니다.
에러 메시지를 보니까 TypeError: 'list' object cannot be interpreted as an integer 라는데 n이 정수이면 안 되는 건가요? 그렇다기에는 n이 들어간 자리에 2, 3 등의 정수를 넣으면 잘 작동했어서... 이해가 잘 되지 않는데 가능하시다면 추가로 설명해 주시면 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
코드의
for i in range(n)
부분에서range(n)
의n
이 리스트입니다.range
는 정수를 인자로 받는데, 그 부분에 정수가 아닌 리스트를 넣었기 때문에, 발생하는 에러입니다.에러메시지만 해석해서 읽어보고 무슨 말인가 생각해 보면 충분히 해결이 가능한 문제입니다.
댓글 입력