파이썬 초보 입니다. 랜덤함수 사용하는것좀 물어볼게요

조회수 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. 문제의 리스트를 1번 섞어둡니다. (편의상 listz라고 부르겠음)
    2. 1차 출력은 listz.pop(0)을 두 번 실행해 얻은 2개의 원소를 돌려줍니다.
    3. 2차 출력은 1차 출력 이후에 listz.pop(0)을 두 번 실행해 얻은 2개의 원소를 돌려줍니다.
    4. 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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)