본문 바로가기

연구노트/Python

Python 튜플 자료형, 딕셔너리 자료형

 

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