-
[python] 자료구조의 변경python 2025. 5. 23. 13:57
자료구조의 변경
Python에서 자료 구조의 변경이란, 한 자료형(예: 리스트, 튜플, 세트, 딕셔너리)을 다른 자료형으로 변환하는 것을 의미합니다. 이를 통해 상황에 맞게 데이터를 더 효율적으로 처리할 수 있습니다.
실습
# 자료구조의 변경 menu = {"커피", "우유", "주스"} print(menu, type(menu))
{'커피', '주스', '우유'} <class 'set'>
menu= list(menu) print(menu, type(menu))
['커피', '주스', '우유'] <class 'list'>
menu= tuple(menu) print(menu, type(menu))
('커피', '주스', '우유') <class 'tuple'>
menu = set(menu) print(menu, type(menu))
{'커피', '주스', '우유'} <class 'set'>
퀴즈
Quiz) 당신의 학교에서는 파이썬 코딩 대회를 주최합니다.
참석률을 높이기 위해 댓글 이벤트를 진행하기로 하였습니다.
댓글 작성자들 중에 추첨을 통해 1명은 치킨, 3명은 커피 쿠폰을 받게 됩니다.
추첨 프로그램을 작성하시오.
조건1 : 편의상 댓글은 20명이 작성하였고, 아이디는 1~20이라고 가정
조건2 : 댓글 내용과 상관 없이 무작위로 추첨하되 중복 불가
조건3 : random 모듈의 shuffle과 sample을 활용
(출력 예제)
--- 당첨자 발표 ---
치킨 당첨자 : 1
커피 당첨자 : [2.3.4]
--- 축하합니다 ---
(활용 예제)
from random import *
lst = [1,2,3,4,5]
print(lst)
shuffle(lst)
print(lst)
print(sample(lst, 1))from random import * users = range(1, 21) print(type(users))
<class 'range'>
users = list(users) print(type(users))
<class 'list'>
shuffle(users) print(users)
[13, 15, 18, 12, 3, 20, 10, 11, 2, 8, 6, 5, 14, 7, 19, 9, 1, 16, 4, 17]
winners = sample(users, 4) # 4명 중에서 1명은 치킨, 3명은 커피 print(winners)
[6, 17, 4, 5]print(" --- 당첨자 발표 ---") print("치킨 당첨자 : {0}".format(winners[0])) print("커피 당첨자 : {0}".format(winners[1:])) print("--- 축하합니다 ---")
--- 당첨자 발표 ---
치킨 당첨자 : 6
커피 당첨자 : [17, 4, 5]
--- 축하합니다 ---퀴즈2
1. 리스트의 중간에 새 요소를 추가하고 싶어요. 어떤 함수를 써야 할까요?
insert()
해설
append()는 리스트 끝에 추가하고, insert()는 인덱스를 지정해 중간에 요소를 넣을 수 있어요. pop()은 요소를 제거하고, clear()는 전부 지워요.
2. 딕셔너리에서 특정 키의 값을 가져오려는데, 혹시 키가 없을 때 프로그램 오류를 피하고 싶어요. 어떻게 해야 가장 안전할까요?
get() 메서드 사용
해설
대괄호 `[]`로 접근 시 키가 없으면 오류가 발생하지만, `get()`은 `None`이나 지정한 기본값을 반환하며 진행됩니다.
3. 파이썬의 리스트와 튜플은 둘 다 순서가 있는 자료구조예요. 튜플이 리스트와 구별되는 가장 중요한 특징은 무엇일까요?
한 번 만들면 내용을 바꿀 수 없다는 점
4. 세트(Set) 자료구조는 어떤 주요 특징을 가지고 있나요?
순서 X, 중복 X
5.리스트에서 원하는 개수만큼 항목을 뽑는데, 무작위로 선택하고 중복되지 않게 하고 싶어요. 어떤 함수를 사용하면 될까요?
해설
sample()
shuffle()은 리스트 순서를 섞고, sort()는 정렬해요. sample()은 리스트에서 무작위로 여러 개를 중복 없이 선택할 때 사용해요.
'python' 카테고리의 다른 글
[python] for (반복문) (0) 2025.05.23 [python] if (조건문) (0) 2025.05.23 [python] 세트 (1) 2025.05.23 [python] 튜플 (0) 2025.05.23 [python] 사전 (0) 2025.05.23