자료형 - 사전 & 집합

insuzy·2021년 8월 8일

파이썬 자료형

목록 보기
4/4
post-thumbnail

📌 사전 자료형

키(key)와 값(value)의 쌍을 데이터로 가지는 자료형이며 리스트나 튜플이 값을 순차적으로 저장하는 것과는 대비된다. 변경 불가능한(Immutable) 자료형을 키로 사용할 수 있다.

  • 파이썬의 자료형은 내부적으로 해시 테이블(HashTable)을 이용하므로 데이터 조회 및 수정에 있어서 상수시간에 처리할 수 있다는 장점이 있다.
  • 임의의 변경 불가능한 키값을 이용해서 각 원소에 접근할 수 있다.
  • 키 값으로 접근 했을 때 매칭되는 값을 얻고자하는 자료구조에서 효과적으로 사용될 수 있다.

🔗 사전 자료형 초기화

data = dict();
print(data);
# {}

data['사과'] = 'apple';
data['바나나'] = 'banana';
print(data);
# {'사과' : 'apple', '바나나' : 'banana'}

b = {
	'홍길동' : 90,
    '아무개' : 80
}
print(b);
# {'홍길동' : 90, '아무개' : 80}
  • dict() 함수 사용
  • 특정한 키에 값을 할당하고자 한다면 대괄호 [] 를 이용해서 안에 키 값을 넣어준다.
  • 중괄호 {} 를 이용해서 키와 값의 매핑콜론 : 설정한다.

🔗 사전 자료형 관련 메서드

print(data);
# {'사과' : 'apple', '바나나' : 'banana'}

print(data['사과']);
# apple

keyList = data.keys();
print(keyList)
# dict_keys(['사과', '바나나'])

valueList = data.values();
print(valueList)
# dict_values(['apple', 'banana'])

for key in keyList :
	print(data[key]);
# apple banana
  • 키 데이터만 뽑아서 리스트로 사용할 때 keys() 함수 사용
  • 값 데이터만 뽑아서 리스트로 사용할 때 values() 함수 사용
keyList = list(data.keys())
print(keyList);
# ['사과', '바나나']

list() 함수로 형변환을 수행하면 리스트 형태로 출력

🔗 사전 자료형 접근 방법

print(b['아무개'])
# 80

key 값으로 접근

📌 집합 자료형

중복을 허용하지 않고 순서가 없는 자료형

  • 데이터의 조회 및 수정에 있어 O(1)의 시간에 처리할 수 있다.
  • 중복된 원소는 제거된다.

🔗 집합 자료형 초기화 방법

# 초기화 방법 1 - set() 함수 사용
data = set([1,1,2,2,3,4,5];
print(data);
# {1,2,3,4,5}

# 초기화 방법 2 - 중괄호 {}
data = {1,1,2,4,4,5,5,6}
print(data);
# {1,2,4,5,6}
  • set() 함수 사용 리스트 혹은 문자열을 이용해서 초기화 할 수 있다.
  • 중괄호 {} 안에 원소를 콤마 기준으로 하여 삽입한다.

🔗 집합 자료형의 연산

기본적인 집합 연산으로는 합집합, 교집합, 차집합 연산 등이 있다.

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

print(a|b);
# {1,2,3,4,5,6,7}

print(a&b);
# {3,4,5}

print(a-b);
# {1,2}
  • 합집합 : 집합 A에 속하거나 B에 속하는 원소로 이루어진 집합(A∪B) | 사용
  • 교집합 : 집합 A에 속하고 B에도 속하는 원소로 이루어진 집합(A∩B) & 사용
  • 차집합 : 집합 A의 원소 중에서 B에 속하지 않는 원소들로 이루어진 집합(A-B) - 사용

🔗 집합 자료형 관련 함수

data = set[1,2,3);
print(data);
# {1,2,3}

data.add(4);
# {1,2,3,4}

data.update([5,6]);
# {1,2,3,4,5,6}

data.remove(3);
# {1,2,4,5,6}
  • add : 원소 하나 추가
  • update : 원소 여러개 추가
  • remove : 특정 값 원소 삭제

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

  • 리스트나 튜플은 순서가 있기에 인덱싱을 통해 자료형의 값을 얻을 수 있다.
  • 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
  • 사전의 키(key) 혹은 집합의 원소(Element)를 이용해 O(1)의 시간 복잡도로 조회한다.
  • 사전의 키(key)나 집합의 원소(Element)값으로는 변경 불가능한 문자열이나 튜플과 같은 객체가 사용되어 한다.

출처 - https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC

profile
UI Developer. publisher

0개의 댓글