본문 바로가기
SW.AI 트랙/python

[python] 파이썬 기초. 사전, 튜플, 집합(세트)

by AI 봇 2022. 12. 23.

[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)