본문 바로가기
Python

[IDLE] 예제와 중복제거

by amoomar 2022. 5. 3.
반응형

 

 

 

이전 포스팅까지의 내용을 활용하여 능력단위평가를 위한 문제를 해결하고 해당 코드를 첨부해보았다.

 

주석을 통해 문제의 요구 조건을 확인할 수 있다.

'''
# 1이상 10이하의 정수를 box 리스트에 저장
# box 리스트를 랜덤하게 섞기
# 맨 마지막 정수를 하나 뽑아냄
# 뽑아낸 정수를 lotto 리스트에 저장
# 2초동안 일시정지
# 2~5번의 행위를 5번 반복
# box, num, lotto가 모두 출력되어야함
'''

import random
import time

box=[] #초기값
lotto=[] #뽑아낸 정수들
num=0 #해당 순서에 뽑은 정수

# 1. 1이상 10이하의 정수를 box리스트에 저장
box=[1,2,3,4,5,6,7,8,9,10]
print("box: "+str(box))
print()

for i in range(5): # 5번 반복
    # 2. box리스트를 랜덤하게 섞기
    random.shuffle(box)
    print("box: "+str(box))

    # 3. 맨 마지막 정수를 하나 뽑기
    num=box.pop()
    print("num: "+str(num))

    # 4. 뽑아낸 정수를 lotto리스트에 저장
    lotto.append(num)
    print("lotto: "+str(lotto))
    print()
    # 5. 2초동안 일시정지
    time.sleep(2)

 

 

 

 

실행 결과는 아래와 같다.

실행 결과

 

 

 


 

 

 

문제 풀이 도중 파이썬으로 랜덤값의 중복제거 방법이 궁금해 구현해보았다.

 

1. random.sample을 활용한 중복 없는 랜덤값 생성

2. dict.fromkeys를 활용한 문자열리스트 중복 제거

'''랜덤값 중복 제거'''
import random

#1부터 100까지의 범위중에 10개를 중복없이 뽑겠다.
array=random.sample(range(1,101),10)

print(array)
print()

'''문자리스트 중복 제거'''
array = ["F", "D", "A", "C", "A", "C", "F", "B", "C", "E", "D", "C", "F", "A", "B", "E", "F", "E"]

# dict.fromkeys를 활용
# - > ※ Python 3.7 버전부터 dictionary 가 삽입 순서를 보존하기 때문에
# 순서를 유지할 수 있습니다.
result = list(dict.fromkeys(array))

print("중복 제거 전 : ", array)
print("중복 제거 후 : ", result)

 

 

 

 

반응형

'Python' 카테고리의 다른 글

[아나콘다] 데이터 분석 및 가공  (0) 2022.05.10
[IDLE] 데이터 분석 및 가공  (0) 2022.05.10
[IDLE] 객체와 상속  (0) 2022.05.06
[IDLE] 파일 입출력  (0) 2022.05.04
[IDLE 설치] 파이썬 입문  (0) 2022.05.02