SW.AI 트랙/python
[python] 파이썬 기초. 사전, 튜플, 집합(세트)
AI 봇
2022. 12. 23. 00:39
[python] 파이썬 기초. 사전, 튜플, 집합(세트)
본 문서는 나도코딩(유뷰트 영상) 자료를 스터디하며 정리한 내용입니다. (출처 : 유튜브 <나도코딩>)
- 사전
- 튜플
- 세트
사진
사전만들기 변수 = { }
단어가 있고 뜻이 있는 사전처럼 코딩에서 사용하는 사전은 키값와 밸류값으로 표현할 수 있습니다. 마치 목욕탕의 캐비넷에 번호(키)와 키를 가지고 있는 사람의 개념으로 이해합니다. 사전은 중괄호 { }로 표현합니다.
# 예를 들어 3번 캐비넷은 유재석, 100번 캐비넷은 김태소가 사용할 경우 이를 정의하면
cabinet = {3:"유재석", 100:"김태호"}
print(cabinet[3]) # 키 값만 사용할 경우는 [ ] 를 사용
print(cabinet.get(3)) # get을 사용할 경우 get( ) 를 사용
밸류가 할당되지 않은 키값을 찾을 경우에 프로그램 오류가 발생하고 코드는 더 이상 실행되지 않습니다.
# 밸류가 할당되지 않은 키값을 호츌출 경우 프로그램 오류가 발생하고, 다음 코드는 실행되지 않습니다.
print(cabimet[5])
print("hello Python") # 실행되지 않음
# 그러나 밸류가 할당되지 않은 키값을 get()을 사용하여 찾을 경우에는 none 값을 호출합니다.
print(cabibet.get(5)) # none 값을 호출해요. 오류가 발생하지 않아요.
print(cabinet.get(5, "사용가능") # 사용가능 을 출력합니다.
print("hello python") # hello python 이 출력됨
print(3 in cabinet) # 3번 키값에는 밸류값이 있으므로 true 가 나옴
print(5 in cabinet) # 5번 키값에는 밸류값이 없으므로 false 가 나옴
키값에 정수형, 문자형도 사용 가능합니다.
# 키값은 정수형이 아닌 문자형 값을 사용해도 되요
cabinet = {"A-3":"유재석", "B-100":"김태호"}
print(cabinet["A-3"]) # 유재석이 출력됨
새손님
기존의 밸류값을 새로운 밸류값으로 변경할 수 있습니다.
cabinet = {"A-3":"유재석", "B-100":"김태호"}
cabinet["A-3"] = "강호동"
print(cabinet["A-3"]) # 강호동 이 출력됩니다.
print(cabinet) # {"A-3" : "강호동, "B-100" : "김태호")
간손님
키값/밸류값을 삭제할 때는 del 을 사용합니다.
del cabinet["B-100"]
print(cabinet) # cabinet = {"A-3" : "강호동"}
사전의 키값, 밸류값을 출력하는 여러 방법들
cabinet = {"A-3":"유재석", "B-100":"김태호"}
print(cabinet.keys()) # dict_keys(['A-3', 'B-100']) 이 출력됨
print(cabinet.values()) # dict_values(['유재석', '김태호']) 이 출력됨
print(cabinet.items()) # dict_items([('A-3', '유재석'), ('B-100', '김태호')]) 이 출력됨
사전 삭제하기 clear
cabinet = {"A-3":"유재석", "B-100":"김태호"}
print(cabinet) # {'A-3': '유재석', 'B-100': '김태호'} 이 출력됨
cabinet.clear()
print(cabinet) # {} 이 출력됨
튜플
튜플은 리스트와는다른게 내용 변경이나 추가를 할 수 없습니다. 변경되지 않는 목록을 사용할 때 사용하면 좋아요.
menu = ("돈까스", "치즈까스")
print(menu[0])
print(menu[1])
menu.add("생선까스") # 실행하면 에러가 발행합니다.
name ="김종국"
age = 2
hobby = "코딩"
# 따로 설정된 변수를 하나로 줄일 수 있어요
(name, age, hobby) = ("김종국", 2, "코딩")
print(name, age,hobby) # 김종국 2 코딩 이 출력됨
세트
집합이라고도 하며, 중복이 안되고 순서가 없습니다.
사전에서는 키와 밸류를 사용하지만, 세트에서는 값만 나열합니다. { }로 표현합니다.
my_set = {1,2,3,3,3}
print(my_set) # {1,2,3} 이 출력됨. 집합(세트)는 중복을 허용하지 않아서 뒤에 있는 3 은 출력되지 않음
# 세트는 아래 두 가지 방식으로 표현할 수 있습니다.
java = {"유재석", "김태호", "양세형"}
python = set(["유재석", "박명수"])
# 교집합 (java, python 을 모두 할 수 있는 사람)
print(java & python)
print(java.intersection(python)) # {'유재석'} 이 출력됨. 위도 같음음
# 합집합 ( java를 할 수 있거나, pyhon을 할 수 있는 사람)
print(java | python)
print(java.union(python)) # {'유재석', '박명수', '양세형', '김태호'} 이 출력
# 차집합 (java는 할 수 있지만, python 은 할 줄 모르는 사람)
print(java - python)
print(java.difference(python))
# python 할 수 있는 사람이 늘어남
python.add("김태호")
print(python)
# java 를 잊어버림
java.remove("김태호")
print(java)