본문 바로가기

Python/Python 기초

[Python] 사전 자료형

1. 사전 자료형

 - 사전 자료형은 키와 값의 쌍을 데이터로 가지는 자료형

 - 리스트나 튜플은 값을 순차적으로 저장하는데 사전 자료형과 대비된다.

키(Key) 값(Value)
사과 Apple
바나나 Banana
코코넛 Coconut
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'

print(data)

if '사과' in data:
	print("'사과'"를 키로 가지는 데이터가 존재합니다.")
{'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}
'사과'를 키로 가지는 데이터가 존재합니다.

 

* 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원

* 키값만 뽑을 때 key(), 값만 뽑을 때 values() 이용

data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'

key_list = data.keys()
value_list = data.values()
print(key_list)
print(value_list)

for key in key_list:
	print(data[key])
dict_keys(['사과','바나나','코코넛']
dick_values(['Apple','Banana','Coconut']
Apple
Banana
Coconut

 

2. 집합 자료형

 - 중복을 혀용하지 않으며 순서가 없다

 - 리스트 혹은 문자열을 이용해서 초기화 가능 ( set()함수 사용)

 - 혹은 중괄호 안에 각 원소를 콤마를 기준으로 구분하여 삽입함으로써 초기화 가능

 

data = set([1, 1, 2, 3, 4, 4, 5])
print(data)

data = {1, 1, 2, 3, 4, 4, 5}
print(data)
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}

 

* 집합 연산으로는 합집합, 교집합, 차집합 연산 등이 있다

* 합집합 : 집합 A에 속하거나 B에 속하는 원소로 이루어진 집합

* 교집합 : A에도 속하고 B에도 속하는 원소로 이루어진 집합

* 차집합 : 집합 A원소 중에서도 B에 속하지 않는 원소들로 이루어진 집합

a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])

# 합집합
print(a|b)

# 교집합
print(a & b)

# 차집합
print(a - b)
{1, 2, 3, 4, 5, 6, 7}
{3, 4, 5}
{1, 2}

 

* 집합 관련 함수

data = set([1, 2, 3])
print(data)

# 새로운 원소 추가
data.add(4)
print(data)

# 새로운 원소 여러 개 추가
data.update([5,6])
print(data)

# 특정한 값을 갖는 원소 삭제
data.remove(3)
print(data)
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6}
{1, 2, 4, 5, 6}

 

* 사전 자료형과 집합 자료형의 특징

 - 리스트나 튜플은 순서가 있기 떄문에 인덱싱을 통해 자료형의 값을 얻을 수 있다

 - 사전 자료형과 집합 자료형은 순서가 없기 떄문에 인덱싱으로 값을 얻을 수 없다.

 - 사전의 키 혹은 집합의 원소를 이용해 O(1)의 시간 복잡도로 조회한다.

'Python > Python 기초' 카테고리의 다른 글

[Python] 조건문  (0) 2021.06.02
[Python] 기본 입출력  (0) 2021.06.02
[Python] 문자열 자료형  (0) 2021.06.02
[Python] 리스트 자료형  (0) 2021.05.31
[Python] 수 자료형의 연산  (0) 2021.05.27