1. 리스트
#리스트
# 지하철 칸별로 10명, 20명, 30명
# subway1 = 10
# subway2 = 20
# subway3 = 30
subway = [10,20,30]
print(subway)
subway = ["A","B","C"]
print(subway)
# A가 몇번째 칸에 타고 있는가?
print(subway.index("A"))
# D가 다음 정류장에서 다음 칸에 탐
subway.append("D")
print(subway)
# E를 A, B 사이에 태우기
subway.insert(1,"E")
print(subway)
# 지하철에 있는 사람을 한 명씩 뒤에서 꺼냄
print(subway.pop())
print(subway)
# print(subway.pop())
# print(subway)
# print(subway.pop())
# print(subway)
# 같은 이름의 사람이 몇 명 있는지 확인
subway.append("A")
print(subway)
print(subway.count("A"))
# 정렬도 가능
num_list = [5,9,7,8,2]
num_list.sort()
print(num_list) #작은 순서대로 정렬
# 정렬 순서 뒤집기
num_list.reverse()
print(num_list)
# 리스트 안 값 모두 지우기
num_list.clear()
print(num_list)
# 다양한 자료형 함께 사용
#mix_list = ["A",20, True]
#print(mix_list)
# 리스트 확장
num_list = [63,5,8,9,14]
mix_list = ["A",20, True]
num_list.extend(mix_list)
print(num_list)
2. 사전
# 사전 {} 중괄호 사용
cabinet = {3:"A", 100 : "B"} # key = 3, value = A
print(cabinet[100]) # 값 가져오는 방법 1
# 값 가져오는 방법 2
print(cabinet.get(3))
# 없는 key 입력시
#print(cabinet[5]) #error
#.get() 사용시
print(cabinet.get(5)) # None 출력
print("Hi")
print(cabinet.get(6, "사용가능")) # 사용가능, 6번 사용가능
# 사전 자료형 안에 값이 있는지 확인
print(3 in cabinet) # True
print(6 in cabinet) # False
# String 형도 가능
cabinet = {"A-3":"강아지","B-100":"고양이"}
print(cabinet["A-3"])
print(cabinet["B-100"])
# 새 손님
print(cabinet)
cabinet["A-3"] = "새"
cabinet["C-20"] = "토끼" # C-20이 사용 중일 경우 토끼로 update
print(cabinet)
# 간 손님 , 값 지우기 가능
del cabinet["A-3"]
print(cabinet)
# key 들만 출력
print(cabinet.keys())
# value 들만 출력
print(cabinet.values())
# key, value 쌍으로 출력
print(cabinet.items())
# 목욕탕 폐점
cabinet.clear() # {} 만 출력
print(cabinet)
3. 튜플
# 튜플 : 속도가 리스트보다 빠름, 리스트와 달리 내용 변경 추가 불가능
menu = ("돈까스", "고구마돈까스") # 절대로 안바뀜
print(menu[0])
print(menu[1])
#menu.add("치즈돈까스") #error, 불가
# 기본
# name = "토끼"
# age = 20
# hobby = "코딩"
# print(name, age, hobby)
# 튜플 사용시
(name, age, hobby) = ("토끼", 20, "코딩")
print(name, age, hobby)
4. 집합 - 중복 불가, 순서 없음
교집합 = &, .intersection()
합집합 = |, .union()
차집합 = -, .difference()
추가 = .add()
삭제 = .remove()
# 집합 (set)
# 중복 불가, 순서 없음
my_set = {1,2,3,3,3}
print(my_set) # 출력 : {1,2,3}
java = {"A","B","C"}
python = set(["A", "나"])
# 교집합. 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("C")
print(python)
# java를 잊음
java.remove("C")
print(java)
5. 자료구조의 변경
set() = { }
list() = [ ]
tuple() = ( )
# 자료구조의 변경
# 커피숍
menu = {"커피","우유","주스"}
print(menu, type(menu)) # {'우유', '주스', '커피'} <class 'set'> 집합형태란 소리
# set 바꿔보기
menu = list(menu)
print(menu,type(menu)) # ['커피', '주스', '우유'] <class 'list'> list 형태로 바뀜
menu = tuple(menu)
print(menu, type(menu)) # ('주스', '우유', '커피') <class 'tuple'>
menu = set(menu)
print(menu, type(menu)) # {'우유', '주스', '커피'} <class 'set'>
<Quiz 4>
# Quiz 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)) # 1개만큼 샘플을 뽑겠다
# # 내가 한 것
# from random import *
# lst = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
# shuffle(lst)
# print(" -- 당첨자 발표 --")
# print(" 치킨 당첨자 : ", sample(lst,1)) # 값이 커피와 중복 될 가능성 있음
# print(" 커피 당첨자 : ", sample(lst,3))
# print(" -- 축하합니다 --")
from random import *
users = range(1,21) # 1부터 20까지 숫자 생성
#print(type(users)) # range
users = list(users)
# print(type(users))
# print(users)
shuffle(users)
# print(users)
# 한번에 4명 뽑기
winners = sample(users,4) # 1명 치킨 4명 커피
print(" -- 당첨자 발표 --")
print(" 치킨 당첨자 : {0}".format(winners[0]))
print(" 커피 당첨자 : {0}".format(winners[1:]))
print(" -- 축하합니다 --")
'코딩 > Python' 카테고리의 다른 글
| COS Pro 2급 Python 모의고사 - [YBM]n부터 m까지 자연수의 합 (0) | 2020.12.28 |
|---|---|
| Python - 5 (0) | 2020.06.14 |
| Python - 3 (0) | 2020.06.10 |
| Python - 2 (0) | 2020.06.10 |
| Python - 1 (0) | 2020.06.09 |