1. 파이썬에서 연관 배열(딕셔너리)이란?
파이썬의 “연관 배열”은 키‑값 쌍을 사용해 데이터를 관리하는 자료구조입니다.
일반적으로 “연관 배열”이라고 불리는 것은 파이썬에서 dict 타입으로 제공됩니다.
예를 들어, 이름을 키로 사용하고 나이 또는 직업을 값으로 저장하면 데이터 조회와 관리가 효율적입니다.
여기서 “키”는 데이터를 지정하는 고유 식별자이며, 각 키는 반드시 고유해야 합니다.
딕셔너리 타입과 다른 자료구조와의 차이점
딕셔너리 타입의 특징은 키를 이용한 빠른 조회입니다.
파이썬의 리스트나 튜플 같은 시퀀스 타입과 비교하면 요소를 순차적으로 검색할 필요 없이 키로 직접 접근할 수 있어 조회 속도가 크게 향상됩니다.
특히 대량의 데이터를 다루거나 조회가 빈번히 발생하는 상황에서 딕셔너리 타입은 매우 유용합니다.
# Example of a dictionary
person = {
"name": "Tanaka",
"age": 30,
"occupation": "Engineer"
}
print(person["name"]) # Output: Tanaka
2. 파이썬 딕셔너리 만들기
파이썬에서는 여러 방법으로 딕셔너리를 만들 수 있습니다.
리터럴 표기법, dict() 함수, zip() 함수 등을 상황에 맞게 선택하면 됩니다.
리터럴을 이용한 방법
리터럴 표기법은 중괄호 {}를 사용해 딕셔너리를 만들며 가장 일반적이고 간단한 방법입니다.
리터럴을 사용하면 한 줄에 키와 값을 정의할 수 있어 직관적으로 딕셔너리를 만들 수 있습니다.
# Literal notation
fruit_prices = {
"apple": 100,
"banana": 150,
"orange": 200
}
dict() 함수 생성 방법
dict() 함수는 튜플 리스트 등으로부터 딕셔너리를 생성할 때 유용합니다.
데이터가 동적으로 변할 때 특히 편리합니다.
# dict function
fruit_prices = dict([("apple", 100), ("banana", 150), ("orange", 200)])
zip() 함수 생성 방법
키와 값이 되는 서로 다른 리스트를 매칭해 딕셔너리를 만들 때 zip() 함수를 사용하면 간결하게 구현할 수 있습니다.
이를 통해 대응되는 리스트들로부터 효율적으로 딕셔너리를 생성할 수 있습니다.
# zip function
keys = ["apple", "banana", "orange"]
values = [100, 150, 200]
fruit_prices = dict(zip(keys, values))
3. 기본 딕셔너리 연산
파이썬 딕셔너리는 가변 자료구조로, 데이터를 자유롭게 추가·수정·삭제할 수 있습니다.
또한 다른 자료구조에 비해 조회 속도가 빠른 것이 특징입니다.
요소 추가 및 업데이트
딕셔너리에 요소를 추가하거나 업데이트하려면 지정한 키에 값을 할당하면 됩니다.
이미 존재하는 키에 값을 할당하면 해당 값이 업데이트되고, 새로운 키를 지정하면 새로운 항목이 추가됩니다.
fruit_prices = {"apple": 100, "banana": 150}
# Add a new element
fruit_prices["orange"] = 200
# Update an existing element
fruit_prices["apple"] = 120
요소 삭제
특정 키를 가진 요소를 삭제할 때는 del 문이나 pop() 메서드를 사용할 수 있습니다.
pop() 메서드는 삭제된 값을 반환하므로, 삭제된 데이터를 보관해야 할 때 유용합니다.
# Deletion using the del statement
del fruit_prices["banana"]
# Deletion using the pop method (returns the deleted value)
removed_price = fruit_prices.pop("orange")
4. 고급 연산
딕셔너리를 고급으로 활용하는 방법에는 다른 딕셔너리와의 병합 및 빈도수 카운팅이 포함됩니다. 이를 통해 보다 정교한 데이터 조작이 가능합니다.
딕셔너리 병합
여러 딕셔너리를 하나로 합칠 때 update() 메서드가 유용합니다. 중복 키가 있으면 해당 키가 덮어써져 한 번에 데이터 병합 또는 업데이트를 할 수 있습니다.
dict1 = {"apple": 100, "banana": 150}
dict2 = {"banana": 200, "grape": 300}
dict1.update(dict2)
# Output: {'apple': 100, 'banana': 200, 'grape': 300}
빈도수 카운팅
Frequency counting is handy, for example, when counting how many times each character appears in a string. Using a dictionary type makes data aggregation and analysis efficient.
text = "apple"
frequency = {}
for char in text:
if char in frequency:
frequency[char] += 1
else:
frequency[char] = 1
# Output: {'a': 1, 'p': 2, 'l': 1, 'e': 1}
5. 사전을 순회하기
루프는 사전의 모든 요소를 한 번에 처리하기에 이상적입니다. 이를 통해 키와 값을 개별적으로 조작하거나 데이터 목록을 가져올 수 있습니다.
루프를 사용하여 키와 값 가져오기
사전에서 키, 값 또는 그 조합을 처리하려면 keys(), values(), items() 메서드를 사용할 수 있습니다.
fruit_prices = {"apple": 100, "banana": 150, "orange": 200}
# Keys only
for key in fruit_prices.keys():
print(key)
# Values only
for value in fruit_prices.values():
print(value)
# Key-value pairs
for key, value in fruit_prices.items():
print(f"The price of {key} is {value} yen")
6. 파이썬 사전 요약
파이썬 사전(연관 배열)은 데이터를 키‑값 쌍으로 관리하여 조회와 연산의 효율성을 크게 향상시킵니다. 리스트와 튜플에 비해 조회 속도가 빠르므로 대량의 데이터를 처리할 때 유리합니다. 또한 데이터 집계와 분석, 다른 데이터 구조와의 결합에 적합하여 파이썬에서 기본 데이터 조작에 필수적입니다. 사전 연산에 익숙해지면 보다 고급 데이터 처리도 가능해집니다.




