-
파이썬 | 복합자료형(2): 딕셔너리, 세트Programming/Python 2025. 3. 7. 18:00
1. 복합자료형
복합자료형 한 변수에 한 가지 값만을 저장할 수 있는 기본자료형에 비해, 복합자료형은 한 변수에 여러 가지의 값을 저장하고 다룰 수 있다. 이러한 복합자료형에는 리스트와 튜플, 딕셔너리, 세트가 있다. 이번 장에서는 딕셔너리와 세트에 대해 알아보자.
2. 딕셔너리
딕셔너리 딕셔너리(dictionary, dict)는 키(key)와 매핑값(value)의 쌍으로 구성된 데이터를 순서 없이 참조하는 자료형이다. 중괄호 안에 키와 매핑값으로 연결된 객체를 쉼표로 구분하여 입력하는 것으로 딕셔너리를 생성할 수 있다. 이때 쌍점을 기준으로 왼쪽에는 키, 오른쪽에는 매핑값을 배치함으로써 하나의 쌍을 이룬다. 딕셔너리의 키는 중복을 허용하지 않으며, 수정 불가능한 자료형인 정수형, 실수형, 문자열, 튜플로만 키를 정의할 수 있다. 매핑값으로는 딕셔너리 자료형을 포함하여 모든 종류의 자료형을 사용할 수 있다.
simple_dict = {1: 'a', 2: 'b', 3: 'c'} complex_dict = { 'year': 2025, 'month': 'January', 'day': 29, 'keyword': ['Python', 'Engineering'], 'title': ('VEDACUBE'), 'data': simple_dict } print(simple_dict, type(simple_dict)) # 변수의 자료형 출력 print(complex_dict, type(complex_dict))
2.1. 딕셔너리 키
딕셔너리 키 딕셔너리는 순서가 없는 자료형이기 때문에 인덱스가 없어 리스트나 튜플처럼 일부분을 분할하여 추출할 수 없다. 대신 딕셔너리의 키를 인덱스처럼 이용해 해당 키와 연결되어 있는 매핑값을 추출할 수 있다. 아래 예시처럼 딕셔너리 옆에 대괄호를 작성하고 대괄호 안에 키를 입력하면 된다.
simple_dict = {1: 'a', 2: 'b', 3: 'c'} complex_dict = { 'year': 2025, 'month': 'January', 'day': 29, 'keyword': ['Python', 'Engineering'], 'title': ('VEDACUBE'), 'data': simple_dict } print(simple_dict[1]) # 딕셔너리에서 키 1에 해당하는 매핑값 출력 print(simple_dict[3]) print(complex_dict['year']) # 딕셔너리에서 키 'year'에 해당하는 매핑값 출력 print(complex_dict['title']) print(complex_dict['data'])
2.2. 객체 추가 및 재할당
딕셔너리는 기존의 키에 연결되어 있는 매핑값을 새로운 값으로 갱신할 수 있다. 또한 아래 예시와 같이 딕셔너리에 포함되어 있지 않은 새로운 키를 정의하여 객체를 추가할 수도 있다.
simple_dict = {1: 'a', 2: 'b', 3: 'c'} complex_dict = { 'year': 2025, 'month': 'January', 'day': 29, 'keyword': ['Python', 'Engineering'], 'title': ('VEDACUBE'), 'data': simple_dict } simple_dict[1] = 'A' # 딕셔너리에서 키 1에 해당하는 매핑값을 'A'로 재할당 simple_dict[4] = 'D' # 딕셔너리에 새로운 객체 추가 print(simple_dict) complex_dict['day'] = 30 # 딕셔너리에서 키 'day'에 해당하는 매핑값을 30으로 재할당 complex_dict['keyword'][1] = 'Programming' complex_dict['website'] = 'https://vedacube.tistory.com/355' print(complex_dict)
2.3. 연산자
딕셔너리는 삭제 연산자와 멤버십 연산자를 지원한다. 삭제 연산자는 연산자 뒤에 따라오는 객체를 딕셔너리에서 삭제한다. 삭제하고 싶은 객체에 해당하는 키를 지정하여 아래 예시와 같이 입력하면 딕셔너리에서 해당 객체만 삭제할 수 있다.
simple_dict = {1: 'a', 2: 'b', 3: 'c'} complex_dict = { 'year': 2025, 'month': 'January', 'day': 29, 'keyword': ['Python', 'Engineering'], 'title': ('VEDACUBE'), 'data': simple_dict } del simple_dict[2] # 딕셔너리에서 키 2에 해당하는 객체를 삭제 print(simple_dict) del complex_dict['data'] # 딕셔너리에서 키 'data'에 해당하는 객체를 삭제 del complex_dict['keyword'] print(complex_dict)
멤버십 연산자는 딕셔너리 안에 특정한 키가 존재하는지 확인할 때 사용한다. 멤버십 연산자를 기준으로 왼쪽에는 확인하고자 하는 키를 입력하고, 오른쪽에는 딕셔너리를 아래 예시와 같이 입력하면 존재 여부를 논리형으로 반환한다. 두 연산자들은 리스트에도 동일하게 사용할 수 있다.
simple_dict = {1: 'a', 2: 'b', 3: 'c'} complex_dict = { 'year': 2025, 'month': 'January', 'day': 29, 'keyword': ['Python', 'Engineering'], 'title': ('VEDACUBE'), 'data': simple_dict } print(3 in simple_dict) # 딕셔너리에 키 3이 있는지 확인 print('3' in simple_dict) print(4 not in simple_dict) # 딕셔너리에 키 4가 없는지 확인 print('year' in complex_dict) # 딕셔너리에 키 'year'가 있는지 확인 print('website' not in complex_dict) # 딕셔너리에 키 'website'가 있는지 확인
2.4. 메소드
메소드는 특정 자료형 전용으로 구현된 함수이다. 자료형이 할당된 변수 오른쪽에 점을 입력하고, 사용하고자 하는 메소드를 입력하면 동작한다. 메소드는 사전에 정의된 자료형과만 동작하기 때문에 각 자료형마다 어떤 메소드가 있는지 확인해둘 필요가 있다. 아래 링크로 접속하면 딕셔너리와 사용할 수 있는 주요 메소드를 확인할 수 있다.
3. 세트
세트 세트(set)는 여러 데이터를 순서 없이 참조하는 자료형이다. 중괄호 안에 객체를 쉼표로 구분하여 입력하는 것으로 세트를 생성할 수 있다. 중복되는 값은 허용하지 않기 때문에 고유한 값만을 참조하는 것이 특징이다. 따라서 세트를 생성할 때 같은 값의 객체를 여러 개 입력하더라도 한 객체만 남는다. 세트가 다룰 수 있는 객체로는 정수, 실수, 문자열, 튜플 자료형이 있다.
simple_set = {1, 2, 3, 4, 5} complex_set = {1, '2', (3, 4), 5.0, 4, 3, '2', 1} print(simple_set, type(simple_set)) print(complex_set, type(complex_set))
3.1. 연산자세트는 비교 연산자와 집합 연산자를 지원한다. 기본자료형에서와는 다르게, 세트 자료형에 대해서 비교 연산자를 사용하면 두 세트 사이의 부분집합 여부를 논리형으로 반환한다.
simple_set = {1, 2, 3, 4, 5} complex_set = {1, '2', (3, 4), 5.0, 4, 3, '2', 1} print({1, 2} < simple_set) print({1, 2, '3'} < simple_set) print({1, (2, 3), 4, 5} > simple_set) print({1, 2, 3, 4, 5, (6, 7)} >= simple_set) print({1, '2', (3, 4), 5.0, 4, 3} < complex_set) print({1, '2', (3, 4), 5.0, 4, 3} <= complex_set)
집합 연산자 집합 연산자는 주어진 두 세트에 대해서 합집합 또는 교집합 등을 연산하여 세트 자료형으로 반환한다.
simple_set = {1, 2, 3, 4, 5} complex_set = {1, '2', (3, 4), 5.0, 4, 3, '2', 1} print(simple_set | complex_set) # 합집합 print(simple_set & complex_set) # 교집합 print(simple_set - complex_set) # 차집합 print(simple_set ^ complex_set) # 대칭차집합
3.2. 메소드
아래 링크로 접속하면 세트와 사용할 수 있는 주요 메소드를 확인할 수 있다.
[함께 읽으면 좋은 페이지]
파이썬 | 변수와 기본자료형: 정수형, 실수형, 논리형, 문자열
1. 변수 변수는 컴퓨터 메모리에 있는 저장 공간을 참조하기 위해 사용하는 이름이다. 저장 공간에 이름을 붙인 뒤 원하는 값을 저장하거나 불러올 때 사용한다. 프로그래밍 언어에서는 저장
vedacube.tistory.com
파이썬 | 복합자료형(1): 리스트, 튜플
1. 복합자료형 한 변수에 한 가지 값만을 저장할 수 있는 기본자료형에 비해, 복합자료형은 한 변수에 여러 가지의 값을 저장하고 다룰 수 있다. 이러한 복합자료형에는 리스트와 튜플, 딕셔
vedacube.tistory.com
참고문헌
- 박진수. (2019). 바로 쓰는 파이썬. 서울대학교출판문화원반응형'Programming > Python' 카테고리의 다른 글
파이썬 | 리스트 메소드: append, insert, extend, pop, remove, count, index, reverse, sort (0) 2025.04.11 파이썬 | 조건문과 반복문(1): if, while, for (0) 2025.04.04 파이썬 | 복합자료형(1): 리스트, 튜플 (0) 2025.02.28 파이썬 | 변수와 기본자료형: 정수형, 실수형, 논리형, 문자열 (0) 2025.02.21 파이썬 | 기본 기능과 규칙 (0) 2025.02.14