파이썬 기초

willy·2022년 1월 14일
0

파이썬 기초 복습을 진행했다.
세트와 리스트, 튜플을 비교하고, 딕셔너리 자료형에 대해 알아보았다.

리스트

대괄호로 표시하고, 스트링과 숫자, 불리언 값이 들어갈 수 있다.

# 리스트
from re import sub

subway = ["똘", "강아지", "고양"]
print(subway)
>>> 

# 리스트 인덱스 찾기
print(subway.index("똘"))

#추가하기
subway.append("영")
print(subway)

# 리스트 사이에 추가하기
subway.insert(1, "석") #인덱스 숫자를 기입하고, 넣고싶은 항목을 기입한다.
print(subway)

num_list = [5,23,35,165,3]
num_list.sort()
mx = [1, 42, '똘', True]
mx.extend(num_list)
print(mx)

pop()을 사용하면, 가장 뒤에 있는 리스트 항목이 제거된다.
리스트엔 정렬도 가능하다. Reverse를 사용하면 리스트를 거꾸로 뒤집는 것도 가능하다.

clear를 사용하면 리스트 비우기도 가능하다. 자료형의 구분을 받지 않는다. extend를 사용하면 리스트끼리 합치기도 가능하다.

딕셔너리, 사전 자료형

#사전은 라커룸과 같다. 같은 키를 받을 수 없고, 100번 키로 101번 사물함을 열수 없듯이 말이다.

cabinet = {3:"똘", 14:"영"}
print(cabinet[3])
print(cabinet[6]) 
#대괄호를 통해 없는 키값을 불러오려고 하면, 프로그램이 에러가 나며 이하 코드는 실행되지 않는다.
print(cabinet.get(4)) 
#get을 통해 없는 키를 불러오려 하면, none 처리가 된다. 이런 프로그램엔 뒤에 값을 붙여줄 경우, none에 할당된다
print(cabinet.get(4, "할당"))

#키는 스트링도 할당이 가능하며, 기존의 값을 업데이트 할 수 있고, 새로운 키를 추가할 수 있다.

# cabinet = {"a": "신민아", "b":"강동원"}
# print(cabinet)
# cabinet["a"] = "아이유"
# cabinet["d"] = "에일리"
# print(cabinet)
# #del 리스트이름['키값']을 해두면 해당 키를 리스트에서 제거할 수 있다.

이전에 자바스크립트에서 배웠던, 오브젝트와 비슷하다. 키값이 존재하고, 이를 추가했다 덜어낼 수 있으며, 새롭게 할당하는 것도 가능하다.

중괄호를 사용해서 만들고, 호출은 대괄호로 불러오는 방식으로도 가능하고, get을 통해서도 가능하다.

아래 사진은 리스트에서 get으로 없는 값을 불러오려할때 나타나는 모습이다. none으로 등장하며 오류가 발생하지 않는다.

튜플

튜플은 수정, 변경이 불가능한 리스트라고 생각하면 된다.

# ## 튜플, 리스트와 다르게 변경이나 추가가 안되지만, 빠른 실행속도를 가지고 있다.
# # 값을 찍을땐 리스트와 동일하게 대괄호를 사용한다. 다만 리스트는 선언시 중괄호 사용, 튜플은 소괄호 사용
# menu = ("돈까스","제육") 
# print(menu[1])

세트

중복이 안되고, 순서가 없는 리스트 항목이다.


set = {1,2,3,4,4,4}
print(set)
>>> 

자료구조 변경
# menu = {"커피", "라떼", "주스"}
# print(menu, type(menu)) # >>> class "set"

# menu = list(menu)
# print(menu, type(menu)) # >>> class "list" / 튜플로도 가능, 

# menu = tuple(menu)
# print(menu, type(menu)) ##세트일댄 중괄호, 리스트일땐 대괄호, 튜플일땐 소괄호

세트 연산은 아래와 같다.
교집합 , 합집합, 차집합을 뽑아낼 수 있다.

교집합 >>> 유재석
합집합 >>> 유재석 김태호 양세형 박명수
차집합 >>> 김태호 양세형

실제로 세트는 중복을 없애고 일정하게 값만 노출한다.

아래 사진은 세트와 리스트, 튜플을 각각 구분하는 방법이다.,

문제

대회가 열렸다. 이벤트로 20명에게 무작위로 추첨해 3명에게는 커피 기프티콘을, 1명에게는 치킨 기프티콘을 주려고 한다. 올바른 식을 작성하시오
-- 당첨자 발표 --
치킨 당첨자 : 1명
커피 당첨자 : 3명
-- 축하합니다 --

먼저 from radom import*를 통해 랜덤 모듈을 호출해준다.

여기에 레인지로 1부터 21까지 호출한 후, 리스트로 감싸 데이터를 정제해준다.

여기서 샘플링을 통해 4명을 추출하고
인덱스를 통해 치킨은 0번을 커피는 1: 할당하면 끝이다.

player = list(range(1,21))
winner = sample(player, 4)
chicken = winner[0]
coffee = winner[1:]

print("-- 당첨자 발표 --")
print(f"치킨 당첨자 : {chicken}")
print(f"커피 당첨자 : {coffee}")
print("-- 축하합니다 --")
profile
같은 문제에 헤매지 않기 위해 기록합니다.

0개의 댓글