파이썬 기초(7) : 데이터 구조2 / 집합, 튜플, 딕셔너리

기초/Python|2021. 12. 30. 20:02

데이터 구조에 따라 선언/읽기/추가/삭제/수정 방식이 다 다르다.

집합(Set) : set() 반복문에서 각각의 데이터 사용 가능

고등학교 수학시간에 배운 집합과 같은 연산을 편리하게 하기 위한 자료형이다.

집합처럼 구성요소간 정해진 순서가 없고, 중복값 또한 없다.

# 선언은 중괄호{}를 이용해서 할 수 있지만 보통 set()로 선언한다.
set_example = set()
set_example.add('값') # 값 추가
set_example.remove('값') # 값 제거
set_example.update(['값1', '값2',..]) # 여러 개의 값 추가

데이터 요소가 딱! 하나일 경우에는 a = set('data') 와 같이 선언할 수도 있다.

여러 개일 경우에는... b = set( {'data1', 'data2',... } ) 처럼 써 주어야 한다!

 

합집합( | ), 교집합(&), 차집합(-), 대칭차집합(^) 연산이 가능하다.

set1 = {'hyundai', 'kia', 'honda', 'BMW', 'suzuki'} # 자동차 브랜드
set2 = {'honda', 'yamaha', 'suzuki', 'BMW'} # 모터사이클 브랜드
print(set1&set2) # 자동차와 모터사이클을 모두 만드는 브랜드
print(set1|set2) # 자동차 또는 모터사이클을 만드는 브랜드
print(set1-set2) # 자동차만 만드는 브랜드
print(set1^set2) # 자동차만 만들거나 모터사이클만 만드는 브랜드

if문과 같이 집합을 이용해서 참/거짓을 판별할 수 있다.

'bird' in set_example # True
'dog' in set_example # False

집합 자료형의 특성상 중복이 없기 때문에!

리스트 자료형에서 중복 제거를 할 때 활용할 수 있다.

list1 = ['hyundai', 'honda', 'yamaha', 'kawasaki', 'ducati', 'honda', 'yamaha', 'BMW']
print(list1) # ['hyundai', 'honda', 'yamaha', 'kawasaki', 'ducati', 'honda', 'yamaha', 'BMW']
print(set(list1)) # {'BMW', 'ducati', 'honda', 'hyundai', 'kawasaki', 'yamaha'}

 

튜플(Tuple) : tuple() 반복문에서 각각의 데이터 사용 가능

# 선언은 괄호()를 이용해서 할 수 있다.
tuple_example = (1, 3, 5, 7)
# 데이터 읽기는 대괄호와 인덱스로 가능하다.
tuple_example[1]

# 튜플끼리 더하거나 여러 번 반복하는 것은 가능하다!
tuple_example2 = (2, 4, 6, 8)
print(tuple_example + tuple_example2)
print(tuple_example * 2) # 튜플끼리 곱하거나 빼는 것은 불가능함!

주의 : 튜플은 한 번 선언하고 나면 데이터를 추가하거나 삭제, 수정이 불가능하다.

return값을 여러 개 내보낼 때 외에도, 변수의 값을 서로 바꿀 때 튜플을 활용할 수 있다.

# x = 1 이고 y = 2 일때, x와 y의 값을 스왑하려면?
# 1. 임시 변수를 만들어 스왑한다.
a = x
x = y
y = a   # x와 y의 값이 변경된다.
# 2. 튜플을 이용한다.
x,y = y,x   # x와 y의 값이 변경된다.

리스트와 튜플은 tuple(), list() 명령어를 활용해서 서로 변환이 가능하다.

→ 튜플을 수정하고 싶을 때 리스트로 변환해서 수정할 수 있다!

 

딕셔너리(Dictionary) : dict() 반복문에서 각각의 데이터 사용 가능

딕셔너리는 말 그대로 사전처럼 사용된다.

# 선언은 중괄호{}를 이용해서 할 수 있다.
# 기본적으로 초기값과 함께 선언되며, 기본적인 형태는 변수명 = {키:값} 이다.
dict_example = {'조류':'앵무', '포유류':'고양이', '파충류':'뱀'}
# 데이터 읽기는 변수명과 [키]를 이용한다.
dict_example['조류']
# 데이터 추가 및 수정, 삭제는 아래처럼 할 수 있다.
dict_example['양서류'] = '개구리' #추가
del dict_example['양서류'] # 삭제
dict_example['조류'] = '앵무새' # 수정

값은 반드시 하나의 값일 필요가 없고, 리스트와 심지어 딕셔너리 형태로도 넣을 수 있다!

아래처럼 딕셔너리 안에 딕셔너리를 넣는 것이 가능함.

pet_info = {
    'pet_details': {
        '생년월일': '2009-06-26',
        '성별': '여',
        '종': '모란앵무'
    },
    'pet_name': '루이',
    'food': ['해바라기씨', '조', '과일 젤리', '밀렛']
}

키 또는 값만 보고 싶을 때는 .keys(), .values(), .items() 명령어를 이용한다.

결과는 리스트 형태로 출력된다! 

단, .items() 는 키와 값을 튜플 형태로 묶어 리스트 형태로 가져온다.

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

파이썬 기초(8) : 객체와 클래스  (0) 2022.01.03
파이썬 기초(6) : 함수  (0) 2021.12.30
파이썬 기초(5) : 반복문  (0) 2021.12.24

댓글()