[Python] 기본 문법 4 – 튜플과 딕셔너리에 대하여

지난 글에 이어서 Python의 기본 문법 중 튜플(tuple)과 딕셔너리(dictionary)에 대해 알아보겠습니다.

Python 튜플(tuple) 설명

튜플은 리스트와 비슷하지만 몇 가지 차이가 있는데, 첫 번째로 []가 아닌 ()를 쓴다는 것입니다.

#리스트 선언
a = [1,5,2,4]

#튜플 선언
a = (1,5,2,4)

다음으로는 리스트는 값을 수정할 수 있지만 튜플은 값을 수정할 수 없습니다. 그래서 프로그램이 진행될 때 값이 변경되지 않는 경우 튜플을 사용하면 됩니다. 값을 수정하지 않기 때문에 리스트 대비 적은 메모리를 쓰고, 그에 따라 프로그램 속도가 빨라진다는 장점이 있습니다. 한 가지 주의할 점은 만약 튜플에 변숫값이 1개만 있다면 콤마(,)로 마무리해야 합니다.

a = ()		#비어있는 튜플
a = (1,)	#값이 1개인 튜플

값을 수정할 수 없기 때문에 리스트를 수정하는 함수인 append나 insert 함수를 사용할 수 없습니다. 하지만 튜플 자체는 del 함수로 지울 수 있습니다.

a = (1,5,2,4)

del(a)

Python 튜플 활용 방법

인덱싱

인덱싱 활용은 리스트와 마찬가지로 []를 활용하면 됩니다.

a = (1,3,5,7,'a','b','c')

print(a[0])
print(a[-2])

>> 1
>> b

리스트 ↔ 튜플 변환

#튜플 선언
a = (1,3,5,7,'a','b','c')

#리스트로 변환: list
b = list(a)
print(b)

#튜플로 변환: tuple
c = tuple(b)
print(c)

>> [1, 3, 5, 7, 'a', 'b', 'c']
>> (1, 3, 5, 7, 'a', 'b', 'c')

연속된 값의 튜플 만들기

튜플을 선언할 때, 만약 값이 연속되어 있다면 range를 통해 간편하게 튜플을 만들 수 있습니다.

#사용 방법
#튜플 = tuple(range(시작 값, 끝 값))
a = tuple(range(0,10))
b = tuple(range(3,8))

print(a)
print(b)

>> (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>> (3, 4, 5, 6, 7)

슬라이스

콜론(:)을 활용하여 선언된 튜플의 특정 범위를 잘라서 사용할 수 있습니다. 사용 방법은 튜플[인덱스 번호1:인덱스 번호2]입니다. 인덱스 번호1부터 인덱스 번호2 직전까지 잘려서 사용됩니다. 즉, 인덱스 번호2에 해당하는 값은 포함되지 않습니다.

a = tuple(range(0,10))

print(a)
print(a[0:1])
print(a[0:2])
print(a[0:3])

>> (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>> (0,)
>> (0, 1)
>> (0, 1, 2)

Python 딕셔너리(dictionary) 설명

딕셔너리는 {}로 묶여있으며 ‘키’와 쌍을 이룬다는 특징이 있습니다.

# 딕셔너리 = {key1:value1, key2:value2, key3:value3, ...}
a = {1:'a', 2:'b', 3:'c'}
b = {'a':1, 'b':2, 'c':3}
c = {1:'a', 'b':2, 3:'c'}
print(a)
print(b)
print(c)

>> {1: 'a', 2: 'b', 3: 'c'}
>> {'a': 1, 'b': 2, 'c': 3}
>> {1: 'a', 'b': 2, 3: 'c'}

위의 예시에서 볼 수 있듯이, 키와 값은 숫자도 될 수 있고 문자도 될 수 있습니다. 그러면 이런 딕셔너리를 어떻게 사용할 수 있을까요??

딕셔너리는 말 그대로 사전입니다. 그래서 키에 해당하는 값을 정의하여 활용할 수 있습니다. 다음의 예시를 볼까요?

Python 딕셔너리 활용

딕셔너리 항목 추가

예를 들어 회사 직원의 정보가 다음과 같다고 해봅시다.

이름베린이
성별
주소서울시
회사 직원 정
member = {'이름':'베린이', '성별':'', '주소':'서울시'}
print(member)

>> {'이름': '베린이', '성별': '', '주소': '서울시'}

이 딕셔너리에 연락처 항목을 추가해 봅시다.

member = {'이름':'베린이', '성별':'', '주소':'서울시'}
print(member)

member['연락처'] = '010-0000-0000'
print(member)

>> {'이름': '베린이', '성별': '', '주소': '서울시'}
>> {'이름': '베린이', '성별': '', '주소': '서울시', '연락처': '010-0000-0000'}

값 접근 방법

각각의 값은 키로 정의가 되어있기 때문에 키를 통해 값을 도출할 수 있습니다.

member = {'이름':'베린이', '성별':'', '주소':'서울시'}

print(member['이름'])
print(member['주소'])

>> 베린이
>> 서울시

[]가 아니라 get 함수로도 값을 얻어낼 수 있습니다.

#get 함수 사용법
#딕셔너리.get(key)
member = {'이름':'베린이', '성별':'', '주소':'서울시'}

print(member.get('이름'))

>> 베린이

[]를 쓰나 get 함수를 쓰나 어차피 결과는 같은데 뭐가 다른 걸까요?? 만약 해당 키에 값이 없을 경우 []를 통해 값을 접근하는 경우 에러가 발생합니다. 하지만 get 함수를 사용할 경우 값을 반환하지 않고 그냥 넘어가게 됩니다.

keys 함수 활용 방법

keys 함수를 활용해서 딕셔너리에 있는 키 목록을 확인할 수 있습니다.

#keys 함수 사용법
#딕셔너리.keys()
member = {'이름':'베린이', '성별':'', '주소':'서울시'}

print(member.keys())

#list를 사용할 경우 간단하게 출력해줌
print(list(member.keys()))

>> dict_keys(['이름', '성별', '주소'])
>> ['이름', '성별', '주소']

values 함수 활용 방법

values 함수를 활용해서 딕셔너리에 있는 모든 값을 확인할 수 있습니다.

#values 함수 사용법
#딕셔너리.values()
member = {'이름':'베린이', '성별':'', '주소':'서울시'}

print(member.values())

#list를 사용할 경우 간단하게 출력해줌
print(list(member.values()))

>> dict_values(['베린이', '', '서울시'])
>> ['베린이', '', '서울시']

items 함수 활용 방법

items 함수를 활용하여 키-값 데이터를 튜플 형태로 변환할 수 있습니다.

#items 함수 사용법
#딕셔너리.items()
member = {'이름':'베린이', '성별':'', '주소':'서울시'}

print(member.values())

#list를 사용할 경우 간단하게 출력해줌
print(list(member.items()))

>> dict_values(['베린이', '', '서울시'])
>> [('이름', '베린이'), ('성별', ''), ('주소', '서울시')]

in 함수 활용 방법

in 함수를 활용하여 딕셔너리에 해당 키의 존재 여부를 확인할 수 있습니다.

#in 함수 사용법
#key in 딕셔너리
member = {'이름':'베린이', '성별':'', '주소':'서울시'}

print('이름' in member)
print('입사일' in member)

>> True
>> False

References: 위키독스

Similar Posts