Algorithm

[Algorithm] 6 강 : 파이썬 문법 - 사전 자료형, 집합 자료형

반응형

# 사전 자료형

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

- 사전 자료형은 키와 값의 쌍을 데이터로 가지며, 원하는 '변경 불가능(Immutable) 자료형을 키로 사용

- 파이썬의 사전 자료형은 해시 테이블을 이용하므로 O(1)의 시간 처리를 가짐

data = dict()

# key 값     /   value 값
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'

print(data)
=>{'사과':'Apple','바나나':'Banana','코코넛':'Coconut'}

if '사과' in data:
	print("사과를 키로 가지는 데이터가 존재합니다')
    
=>"사과를 키로 가지는 데이터가 존재합니다'
   

 

# 사전 자료형 관련 메서드

- keys() : key 데이터만 뽑아서 리스트로 출력

- values() : value 데이터만 뽑아서 리스트로 출력

data = dict()

# key 값     /   value 값
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'

# key 데이터를 가지고 온다
key_list = data.keys()

# value 데이터를 가지고 온다.
value_list = data.values()

print(key_list)
=> dict_keys(['사과','바나','코코넛'])

print(value_list)
=> dict_keys(['Apple','Banana','Coconut'])

# 리스트 형태로 값 받기

print(list(key_list))
=>['사과','바나','코코넛']

print(list(value_list))
=>['Apple','Banana','Coconut']



# 각 키에 따른 값을 하나씩 출력
for key in key_list:
	print(data[key])
=>Apple
=>Banana
=>Coconut

 

 


#집합 자료형

특징 

 - 중복을 허용 하지 않음

 - 순서가 없다

집합은 리스트 혹은 문자열을 이용해 초기화한다.

 - set() 함수를 사용

 - 중괄호({}) 안에 원소를 콤마를 기준으로 삽입하여 초기화 가능

데이터 조회 및 수정에 있어 O(1) 시간에 처리할 수 있다.

 

# 집합 자료형 생성 방법 - 1 

data = set([1,1,2,3,4,4,5])
print(data)
=> {1,2,3,4,5} # set은 중복을 제거한다. 그래서 중복되지 않는 5가지의 값만 나온다.

# 집합 자료형 초기화 방법 - 2 
data = {1,1,2,3,4,4,5}
print(data)
=> {1,2,3,4,5}

 

# 집합 자료형의 연산

- 합집합 , 교집합, 차집합이 가능하다.

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}

 

# 집합 자료형 관련 함수

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

# 새로운 원소 추가
data.add(4)
print(data)
=>{1,2,3,4}

#새로운 원소 여러개 추가
data.update([5,6])
print(data)
=>{1,2,3,4,5,6}

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

 

 


 

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

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

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

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

 

 

 


이 자료는 동빈 나 님의 이코테 유튜브 영상을 보고 정리한 자료입니다.

참고 : www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC

반응형