파이썬 초보 입니다. 랜덤함수 사용하는것좀 물어볼게요
조회수 709회
안녕하세요. 현재 파이썬 입문과정을 공부하고 있는데요.
랜덤 함수에 대해서 질문을 남기려고 합니다.
import random
count = 2
paper_list = [ ]
paper_list.append("가")
paper_list.append("나")
paper_list.append("다")
paper_list.append("라")
paper_list.append("마")
paper_list.append("바")
paper_list.append("사")
paper_list.append("아")
paper_list.append("자")
paper_list.append("차")
paper_list.append("카")
paper_list.append("타")
paper_list.append("파")
paper_list.append("하")
print ("1차 출력 = ", random.sample(paper_list, count))
리스트에 있는 것중에 2개의 문자열을 출력하는 함수인데
여기서 2차 출력 에는 1차에서 출력된걸 제외하고
또 3차 출력에서는 1,2차에서 출력된걸 제외하려고 하려 합니다.
이럴때 어떤걸 써야 되나요. 리스트에서 리무브를 써서 리스트에서 하나하나 삭제되는 걸 넣어야 하는지 또, 넣게 되면 1차 출력에서 나온 결과물을 어떤식으로 받아 리무브 해야되는지,
더 좋은 방법이 있으면 부탁드립다.. 독학하려니 어렵네요 ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
- 문제의 리스트를 1번 섞어둡니다. (편의상
listz
라고 부르겠음) - 1차 출력은
listz.pop(0)
을 두 번 실행해 얻은 2개의 원소를 돌려줍니다. - 2차 출력은 1차 출력 이후에
listz.pop(0)
을 두 번 실행해 얻은 2개의 원소를 돌려줍니다. listz
에서 더 이상 뽑아낼 원소가 없을 때까지 원하는 만큼 반복합니다.
거의 대부분의 언어에서 pop이란 어떤 목록을 특정 위치에 있는 원소 - 기본적으로 맨 끝의 것 - 가 없는 목록으로 만들어준 다음, 바로 그 원소를 반환하는 메소드입니다. 그러므로 2차 출력에서 사용하는
listz
에는 1차 출력 때 사용한 2개의 원소가 없는 상태고, 원하시는 것을 달성할 수 있게 됩니다.설명이 되었을지 모르겠네요.
- listz(0) 0부분에 print에서 나온 출력 값을 입력해야 되는데, 그부분을 어떻게 써야 되는지 모르겠에요 ㅠ 가령 print에해서 출력된 값이 ['카', '하']가 나왔을때 이 '카', '하'의 인덱스를 찾아서 다시 pop을 해야되는데 도저히 모르겠어요 ㅠ 알 수 없는 사용자 2019.9.25 13:28
- 답변 주신내용은 랜덤으로 출력하지 말고 셔플로해서 섞은다음에 2개씩 출력해서 팝하라는 건가요? 쌩초보라서 ㅠㅠ ㅈㅅ합니다 알 수 없는 사용자 2019.9.25 13:45
- 네 바로그말입니다… 제가 문제상황을 잘못 이해한 것일까요? 엽토군 2019.9.25 17:41
- 네 감사합니다. 답변주신대로 하니까 쉽게 해결되네요 감사합니다 알 수 없는 사용자 2019.9.26 09:47
- 문제의 리스트를 1번 섞어둡니다. (편의상
댓글 입력