본문 바로가기
Python

파이썬 튜플과 딕셔너리

by Hunger 2023. 9. 20.
반응형

1. 튜플 자료 구조

튜플(Tuple)의 자료 구조는 기본적으로 리스트와 유사합니다. 튜플은 대괄호가 아니라 괄호를 사용합니다. 튜플은 요소를 직접 수정할 수 없지만, 실행 속도가 빠르며 가볍다는 장점이 있습니다. 튜플은 내용이 바뀌지 않는 상수 형태이기 때문에 딕셔너리 구조에서 key로도 사용할 수 있습니다.

tup = (17, 23, 27, "Germany", "Frace", "Korea")
print(tup)

i = 0
while i < len(tup):
    print(tup[i], end = " ")
    i += 1

튜플은 불변 객체로 요소를 직접 수정할 수 없습니다 만약 tup[1] = 170과 같이 수정을 시도하면 TypeError의 오류 문구를 볼 수 있습니다.

2. 딕셔너리 자료 구조

딕셔너리 자료 구조는 키와 값을 하나의 쌍으로 하는 요소를 이룹니다. 따라서 객체나 데이터를 매핑하는 방법으로 사용할 수 있습니다. 파이썬 딕셔너리에서 키로는 정수나 문자열을 사용할 수 있고, 앞에 배운 튜플 또한 딕셔너리의 키로 사용할 수 있습니다.

1) 딕셔너리 자료 구조의 선언

딕셔너리 자료 구조를 선언하는 방법은 dict() 함수를 사용하거나 중괄호를 사용합니다. 딕셔너리를 초기화할 때는 Key와 Value를 지정해 주어야 합니다. 주의할 것은 변수 이름을 dict로 사용하지 않는 것입니다. 만약 변수 이름을 dict로 설정할 경우, dict() 생성자 함수를 사용할 수 없습니다. 식별자를 dict로 사용하는 실수를 하지 않도록 주의해주세요.

dic = {"name":"laplace","phone":"010-1234-5678","address":"London"}

name = dic.get("name")
phone = dic.get("phone")
address = dic.get("address")

print("Name: {}".format(name))
print("Phone: {}".format(phone))
print("Address: {}".format(address))

Result

Name: laplace
Phone: 010-1234-5678
Address: London

2) 딕셔너리 요소 접근

앞의 코드에서 요소 접근을 get() 함수로 했던 것을 간단히 인덱스 기호로 접근하는 방식으로 변경하는 코드를 작성해보았습니다. 딕셔너리의 접근성은 get() 함수보다 대괄호를 활용한 접근 방식이 더 쉽고 간편합니다.

dic = {}
print(type(dic))

dic["name"] = "laplace"
dic["phone"] = "010-1234-5678"
dic["address"] = "London"

print(dict)
print("Name => " + dic["name"])
print("Phone => " + dic["phone"])
print("Address => " + dic["address"])

Result

<class 'dict'>
{"name":"laplace","phone":"010-1234-5678","address":"London"}
Name => laplace
Phone => 010-1234-5678
Address => London

3) 딕셔너리와 리스트 통합 사용

딕셔너리의 구조는 객체와 유사합니다. 따라서 딕셔너리를 객체처럼 사용할 수도 있습니다. 파이썬에서는 리스트나 딕셔너리를 각각 개별적으로도 사용합니다. 하지만 대체로 두 가지 이상의 자료 구조를 혼용하여 더욱 풍부하게 구현하여 사용하는 경우도 많습니다. 다음은 사용자 정보를 저장한 딕셔너리 구조를 리스트에 담는 과정을 나타낸 코드입니다.

lis = []

for i in range(0,4):
    people = {}
    people["name"] = input("name>>> ")
    people["phone"] = input("phone>>> ")
    people["address"] = input("address>>> ")
    lis.append(people)

    for people in lis:
    print("name:{}, phone:{}".format(people["name"],people["phone"]))

4) 딕셔너리의 Key와 Value

딕셔너리에는 keys() 함수와 values() 함수가 포함되어 있습니다. 이 함수들은 딕셔너리에서 Key 값들과 Value 값들을 각각 별개로 가져올 수 있습니다. 이렇게 가져온 값들은 엄밀하게는 기본 리스트 타입과는 다른 dict_keys 타입과 dict_values 타입입니다. 출력을 해보면 dict_keys 타입과 dict_values 타입에 감싸인 것을 확인해볼 수 있습니다. 이 데이터를 일반적인 리스트 타입으로 바꾸기 위해서는 list() 함수를 이용하여 형 변환을 해주어야 합니다.

dic = {"name":"laplace","phone":"010-1234-5678","address":"London"}

keys = dic.keys()
values = dic.values()

print("keys type :", type(keys))
print("values type :", type(values))

print("keys :", keys)
print("values :", values)

Result

keys type : <class 'dict_keys'>
values type : <class 'dict_values'>
keys : dict_keys(['name','phone','address'])
values : dict_values(['laplace','010-1234-5678','London'])
반응형

'Python' 카테고리의 다른 글

파이썬 리스트 연결과 정렬  (0) 2023.09.18
파이썬 리스트 인덱싱과 슬라이싱  (0) 2023.07.27
파이썬 리스트 자료 구조  (0) 2023.07.15
파이썬 자료 구조의 종류  (0) 2023.07.09
파이썬 중첩 if문과 while문  (0) 2023.07.06

댓글