주사위에서 나올 수 있는 범위인 1~6사이의 정수 5개를 무작위로 출력하는 코드를 작성하세요. 중복되는 숫자가 있는지 세어보세요.
1) 무작위 출력이므로 import random을 사용해야함
2) 중복되는 숫자를 세어야하므로 임의로 뽑힌 5개의 정수를 우선 리스트에 포함시킨다
3) 중복되는 숫자를 "in"을 사용해서 찾고, 그 숫자가 몇 번 반복되는지 "count"를 사용해서 나타보고자 함
import random
# 1~6 사이의 정수 5개를 무작위로 출력해야 한다
# list(map(int, input().split())) 사용하여 뽑힌 숫자들이 바로 리스트에 저장되도록 한다
# => 랜덤 숫자를 뽑아야되므로, input()을 사용할 수 없다
rand_num_list= []
for _ in range(5):
num = random.randint(1,6)
rand_num_list.append(num) #랜덤으로 뽑힌 숫자를 리스트에 추가
dup_nums = [] #중복되는 숫자 담으려는 리스트
dup_count = [] #중복되는 숫자가 몇 번 반복되는지
count = 0
for num in rand_num_list: # 랜덤 숫자 5개로 구성된 숫자를 순회하며, 그 숫자가 중복되는지 판단하기
if not num in dup_nums: #랜덤 숫자가 중복 리스트에 없다면 추가해주어야함
dup_nums.append(num)
dup_count.append(1) # 중복되는 숫자가 1개 생긴거이므로 1을 추가
else: #리스트에 포함되어 있다면, 반복되는 숫자를 넣어준다.
idx = dup_nums.index(num) # 중복 리스트에 몇 번째 인덱스를 가지는지
dup_count[idx] += 1 #중복 카운트에 1을 더해준다
print(f'랜덤 숫자 5개: {rand_num_list}')
for i in range(len(dup_count)):
print(f'중복되는 숫자: {dup_nums[i]}, 반복 횟수: {dup_count[i]}')
'''
출력결과
랜덤 숫자 5개: [3, 4, 3, 6, 3]
중복되는 숫자: 3, 반복 횟수: 3
중복되는 숫자: 4, 반복 횟수: 1
중복되는 숫자: 6, 반복 횟수: 1
'''
rand_num_list= []
for _ in range(5):
num = random.randint(1,6)
rand_num_list.append(num) #랜덤으로 뽑힌 숫자를 리스트에 추가
print(rand_num_list)
# [1, 6, 2, 6, 6]
rand_num_list = [random.randint(1,6) for _ in range(5)]
print(rand_num_list)
# [5, 5, 3, 4, 3]
[expression for item in iterable]
예시코드 및 결과
string = "hello"
char_list = [char for char in string]
print(char_list) # ['h', 'e', 'l', 'l', 'o']
char_list = ['h', 'e', 'l', 'l', 'o']
string = ''.join(char_list)
print(string) # hello