[Python] 튜플, 집합, 자료구조의 변경

1. 튜플

#튜플
#제약이 많지만 리스트보다 빠름
menu = ("돈까스","치즈까스") #메뉴가 변경될 일 없음
print(menu[0])
print(menu[1])

#menu.add("생선가쓰")  --> 튜플은 add를 사용할 수 없음

name = "쿠로"
age =" 20"
hobby = "바느질"
print(name, age, hobby)
#위 내용을 튜플로 해보자
(name, age, hobby) = ("쿠로","20", "바느질")
print((name, age, hobby))드를 입력하세요

2. 집합

#세트(set : 집합)
#중복안됨, 순서없음
my_set = {1,2,3,3}  #dictionary에서는 {}에 key,value넣었으나..
print(my_set) #-> 1,2,3 만 나옴. 중복은 한번만 나옴

java = {"쿠로","아도니스","나기사"}
python = set(["쿠로","안즈"])

#교집합 : java와 python을 모두 할 수 이쓴 사람
print(java&python)  #->쿠로
print(java.intersection(python)) #-> 쿠로

#합집합 : java를 할 수 있거나 또는 python을 할 수 있는 개발자
print(java | python) 
print(java.union(python))
# .... 쿠로가 두번째로 가는데, 순서를 고려하지않음.

#차집합 : java를 할 수 있지만 python을 모르는 개발자
print(java - python)
print(java.difference(python))

#python을 할 줄 아는 사람이 늘었다...
python.add("아도니스")
print(python)   #set에 값 추가 가능
java.remove("쿠로")
print(java)     #set에서 값 제거 가능

3. 자료구조의 변경

#자료구조의 변경
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'>

4. 문제

"""
당신의 학교에서는 파이썬 코딩 대회를 주최합니다.
참석률을 노피익 위해 댓글 이벤트를 진행하기로 하였습니다.
댓글 작성자들 중에 추첨을 통해 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)) #lst에서 한개 무작위로 뽑음
--> print 결과
[1, 2, 3, 4, 5]
[1, 2, 5, 4, 3]
[4]
"""
from random import *

ID_list = range(1,21) # 1부터 20까지의 숫자 생성
print(type(ID_list))#<class 'range'>
ID_list = list(ID_list)
print(type(ID_list))#<class 'list'>
shuffle(ID_list)
print(ID_list) #셔플된 목록
#중복이 되면 안되는데 4명 뽑아야하니 한번에 4명뽑기
winners = sample(ID_list,4)
print(" -- 당첨자 발표 --")
print("치킨 당첨자 : {0}".format(winners[0]))
print("커피 당첨자 : {0}".format(winners[1:]))
print("--- 축하합니다---")

좋은 웹페이지 즐겨찾기