Python/Python 기초

파이썬 강의 8. - 딕셔너리(Dictionary)와 세트(Set)

wtc 2024. 6. 16. 13:09

이 강의를 읽기 전 파이썬 강의 - 3. 변수와 자료형을 간단하게나마 읽고 오길 추천한다.

목차


딕셔너리의 특징

  • 키 값 쌍(Key-Value pair)을 저장하는 자료형
  • 순서가 없고, 키를 통해 값을 조회할 수 있음
  • 중괄호를 사용하여 ' 키 : 값 ' 형태로 사용

 

딕셔너리의 기능

딕셔너리 생성

score = { 
	'bob' : 60,
	'james' : 75,
	'min' : 30
}   # Key : Value

 

Key를 이용해 Value을 반환

score = { 
	'bob' : 60,
	'james' : 75,
	'min' : 30
}   # 키 : 값

print(score['bob']) # 60

 

딕셔너리에 데이터를 추가

city = {
	'Korea' : 'Seoul',
	'Japen' : 'Tokyo',
}

city['USA'] = 'Washington'

print(city['USA'])

 

딕셔너리 데이터 삭제 및 Key 존재 여부 확인

city = {
	'Korea' : 'Seoul',
	'Japen' : 'Tokyo',
	'USA' : 'Washington'
}

# 딕셔너리 안 'Japen' Key 삭제
del city['Japen']

# 딕셔너리 안에 Key가 있는지 확인
print('Korea' in city)
print('Japen' in city)

 

딕셔너리 내 모든 Key, Value, Item 조회

city = {
	'Korea' : 'Seoul',
    'Japen' : 'Tokyo',
	'USA' : 'Washington'
}

print(city.keys()) # dict_keys(['Korea', 'Japen', 'USA']), Key들을 출력
print(city.values()) # dict_values(['Seoul', 'Tokyo', 'Washington']), Value들을 출력
print(city.items()) # dict_items([('Korea', 'Seoul'), ('Japen', 'Tokyo'), ('USA', 'Washington')]) # Key, Value 쌍을 출력

 

반복문 활용

city = {
	'Korea' : 'Seoul',
	'Japen' : 'Tokyo',
	'USA' : 'Washington'
}

for key, value in city.items():
	print("Country : ", key)
	print("-Capital : ", value)
    
"""    
Country :  Korea
-Capital :  Seoul
Country :  Japen
-Capital :  Tokyo
Country :  USA
-Capital :  Washington
"""

세트(Set)의 특징

  • 순서가 없어서 인덱스를 이용할 수 없음
  • 수학에서의 집합 개념과 동일하게 동작

세트의 기능

세트 생성

set_nums = {1, 2, 3, 4, 5}

print(set_nums) # 1,2,3,4,5 출력

print(set_nums[1]) # 순서가 없어 Index로 접근이 불가능하기에 오류

"""
 딕셔너리와 같은 중괄호를 사용하지만 키 : 값 쌍이 아님
"""

 

반복문 활용

set_nums = {1, 2, 3, 4, 5}

for num in set_nums:
	print(num)
"""
출력
1
2
3
4
5
"""

 

중복된 값 제거

list_nums = [1, 2, 2, 3, 4, 5, 5, 6, 7]

set_nums = set(list_nums) #list_nums 리스트를 set로 자료형 변환

print(set_nums)

# 출력 : 1, 2, 3, 4, 5, 6, 7

 

수학 집합 연산

set_nums1 = {1, 2, 3, 4}
set_nums2 = {3, 4, 5, 6}

#합집합
print(set_nums1 | set_nums2) #두 set를 합친다. 겹치는 값은 제거, {1, 2, 3, 4, 5, 6}

#교집합
print(set_nums1 & set_nums2) # 두 set에서 겹치는 값만 출력, {3, 4}

#차집합
print(set_nums1 - set_nums2)#set_nums1에서 set_nums2와 겹친 값을 뺀 후 남은 값만 출력, {1, 2}