
Python 튜플 자료형
튜플 자료형이란?
튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 유사하지만 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
다음은 튜플의 예시 모습이다.
## 튜플 자료형 예시
t1 = ()
t2 = (1, )
t3 (1, 2, 3)
t4 = 1, 2, 3
리스트와 모습은 거의 비슷하지만 튜플에서는 리스트와 다른 2가지 차이점을 찾아볼 수 있다.
t2 = (1, )처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를 반드시 붙여야 한다는 것과
t4 = 1, 2, 3처럼 괄호( )를 생략해도 무방하다는 점이다.
얼핏 보면 튜플과 리스트는 비슷한 역할을 하지만 프로그래밍을 할 때 튜플과 리스트는 구별해서 사용하는 것이 유리하다.
튜플은 데이터의 고정된 집합을 표현할 때 유용하고, 리스트는 데이터의 변경이 필요한 경우에 적합하다.
실제 프로그래밍에서 리스트가 더 많이 사용되는 경향이 있지만, 튜플도 특정 상황에서 유용하게 사용된다.
예를 들어, 함수의 반환값으로 여러 값을 반환할 때 튜플을 사용하는 것이 일반적이다.
1. 튜플 요솟값을 삭제할 때 오류가 발생하는 모습을 볼 수 있다.
튜플의 요소를 리스트처럼 del 함수로 지우는 행위가 지원되지 않는다는 메시지를 확인할 수 있다.
## 튜플 삭제시
t1 = (1, 2, 'a', 'b')
del t1[0]
→ Error code 발생
2. 튜플 요솟값을 변경하려 할 때
## 튜플 수정시
t1 = (1, 2, 'a', 'b')
t1[0] = 'c'
→ Error code 발생
튜플 다루기
튜플은 값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전 동일하므로 간단하게만 살펴보자.
○ 인덱싱하기
## 튜플 인덱싱
t1 = (1, 2, 'a', 'b')
t1[0]
→ 1
t1[3]
→ 'b'
○ 슬라이싱하기
## 튜플 슬라이싱
t1 = (1, 2, 'a', 'b')
t1[1:]
→ (2, 'a', 'b')
○ 튜플 더하기
## 튜플 더하기
t1 = (1, 2, 'a', 'b')
t2 = (3, 4)
t1 + t2
→ (1, 2, 'a', 'b', 3, 4)
○ 튜플 곱하기
## 튜플 곱하기
t2 = (3, 4)
t2 * 3
→ (3, 4, 3, 4, 3, 4)
○ 튜플 길이 구하기
## 튜플 길이 구하기
t1 = (1, 2, 'a', 'b')
len(t1)
→ 4
Python 딕셔너리 자료형
딕셔너리란?
키-값 쌍(key-value pair)으로 데이터를 저장하는 가변(mutable) 자료형이다.
딕셔너리는 중괄호 { }로 정의되며, 각 키와 값은 콜론 ':'으로 구분된다.
여러 개의 키(Key)-값(Value) 쌍은 쉼표 ','로 구분하여 나열한다.
딕셔너리는 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고 키(Key)를 통해서 값(Value)을 얻는다.
다음은 기본 딕셔너리의 모습니다. {key1:value1, key2:value2, key3:value3, ...} 다음 예제를 살펴보자.
## 딕셔너리 기본 예시
dic = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
위에서 Key는 각각 'name', 'phone', 'birth'이고, 각각의 Key에 해당하는 Value는 'pey', '0119993323', '1118'이 된다.
딕셔너리 dic의 정보
|
Key
|
Value
|
|
name
|
pey
|
|
phone
|
0119993323
|
|
birth
|
1118
|
다음 예시는 Key로 정수 값 1, Value로 문자열 'hi'를 사용한 예이다. 또한, Value에 리스트도 넣을 수 있다.
## 딕셔너리 기본 예시
a = {1 : 'hi'}
a = {'a' : [1, 2, 3]}
딕셔너리 쌍 추가, 삭제하기
○ 딕셔너리 쌍 추가하기
{1: 'a'} 딕셔너리에 a[2] = 'b'와 같이 입력하면 딕셔너리 a에 Key와 Value가 각각 2와 'b'인 2:'b'라는 딕셔너리 쌍이 추가된다.
## 딕셔너리 쌍 추가하기
a = {1 : 'a'}
a[2] = 'b'
a
→ {1 : 'a', 2 : 'b'}
딕셔너리 a에 'name':'pey'라는 쌍을 추가하고 싶다면 아래와 같이 작성한다.
## 딕셔너리 쌍 추가하기
a['name'] = 'pey'
a
→ {1 : 'a', 2 : 'b', 'name' : 'pey'}
○ 딕셔너리 요소 삭제하기
del 함수를 사용하여 삭제한다. del a[Key]처럼 입력하면 지정한 Key에 해당하는 {key : value}쌍이 삭제된다.
## 딕셔너리 요소 삭제하기
del a[1]
a
→ {2 : 'b', 'name' : 'pey'}
※ 위의 코드들은 보기 쉽도록 끊어서 작성하였다.
딕셔너리를 사용하는 방법
○ 딕셔너리에서 Key 사용해 Value 얻기
Key를 사용해서 Value를 구하는 방법이며, '딕셔너리 변수 이름[Key]'를 사용한다.
## 딕셔너리에서 Key 사용해 Value 얻기
dic = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
dic['name']
→ 'pey'
dic['phone']
→ '0119993323'
dic['birth']
→ '1118'
○ 딕셔너리 만들 때 주의사항
Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다는 점을 주의해야 한다.
또한, Key에 리스트는 쓸 수 없다. 하지만 튜플은 Key로 쓸 수 있다.
딕셔너리의 Key로 쓸 수 있느냐 없느냐는 Key가 변하는 값인지 변하지 않는 값인지에 달려 있다.
## 딕셔너리 만들 때 주의사항
a = {(1, 2): 'hi'}
a[[1, 2)]
→ 'hi'
a = {[1, 2] : 'hi'}
→ Error code 발생
딕셔너리 관련 함수
딕셔너리가 자체적으로 가지고 있는 관련 함수를 사용해 보자.
○ Key 리스트 만들기(keys)
a.keys( )는 딕셔너리 a의 key만을 모아서 dict_keys 객체를 돌려준다.
## Key 리스트 만들기(keys)
a = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
a.keys()
→ dict_keys(['name', 'phone', 'birth'])
dict_keys 객체는 다음과 같이 사용할 수 있으며, 리스트를 사용하는 것과 차이가 없다.
하지만 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없다.
## Key 리스트 만들기(keys)
for k in a.keys():
print(k)
→ name
→ phone
→ birth
dict_keys 객체를 리스트로 변환하려면 다음과 같이 하면 리스트를 만들 수 있다.
## Key 리스트 만들기(keys)
list(a.keys())
→ ['name', 'phone', 'birth']
○ Value 리스트 만들기(values)
key를 얻는 것과 마찬가지 방법으로 Value만 얻고 싶다면 values 함수를 사용하면 된다.
values 함수를 호출하면 dict_values 객체를 돌려준다.
## Value 리스트 만들기(values)
a = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
a.values()
→ dict_values['pey', '0119993323', '1118']
○ Key, Value 쌍 얻기(items)
items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.
## Key, Value 쌍 얻기(items)
a = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
a.items()
→ dict_items[('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')]
○ Key: Value 쌍 모두 지우기(clear)
clear 함수는 딕셔너리 안의 모든 요소를 삭제한다.
빈 리스트를 [ ], 빈 튜플을 ( )로 표현하는 것과 마찬가지로 빈 딕셔너리도 { }로 표현한다.
## Key: Value 쌍 모두 지우기(clear)
a = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
a.clear()
a
→ { }
○ Key로 Value 얻기(get)
get(x) 함수는 x라는 Key에 대응되는 Value를 돌려준다.
a.get('name')은 a['name']을 사용했을 때와 동일한 결과값을 돌려받는다.
## Key로 Value 얻기(get)
a = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
a.get('name')
→ 'pey'
a.get('phone')
→ '0119993323'
다만, a['nokey']처럼 존재하지 않는 키(nokey)에 대해서는 오류를 발생시키고, a.get('nokey')는 None을 돌려주는 차이가 있다.
## Key로 Value 얻기(get)
a = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
print(a.get('nokey))
→ None
print(a.get['nokey])
→ Error code 발생
○ 해당 Key가 딕셔너리 안에 있는지 조사하기(in)
다음 예제에서 'name'문자열은 a 딕셔너리의 Key 중 하나이다. 따라서 'name' in a를 호출하면 참(True)을 돌려준다.
반대로 'email'은 a 딕셔너리 안에 존재하지 않는 Key이므로 거짓(False)을 돌려준다.
## 해당 Key가 딕셔너리 안에 있는지 조사하기(in)
a = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
'name' in a
→ True
'email' in a
→ False
이번 연구노트는 튜플 자료형과 리스트 자료형의 차이점, 딕셔너리 자료형의 사용방법 및 관련함수에 관하여 연구하였다.
다음 연구 주제는 집합 자료형과 불 자료형이다.
'연구노트 > Python' 카테고리의 다른 글
| Python 제어문(while문) (1) | 2025.04.08 |
|---|---|
| Python 제어문(if문) (1) | 2025.04.07 |
| Python 집합 자료형, 불 자료형 (0) | 2025.04.07 |
| Python 리스트 자료형 (2) | 2025.04.07 |
| Python 기초 (1) | 2025.04.07 |