1. 기초 파이썬 예시 코드 (5개)
딕셔너리의 기본적인 생성, 접근, 수정, 삭제 방법을 익힙니다.
1) 딕셔너리 생성 및 값 접근
# 학생 정보를 담은 딕셔너리를 생성하고 키를 이용해 값을 가져옵니다.
student = {
"name": "홍길동",
"id": 202301,
"major": "컴퓨터공학"
}
# 'name' 키를 이용해 값에 접근
print(f"학생 이름: {student['name']}")
# get() 메서드 활용 (키가 없어도 오류 없이 기본값 반환 가능)
print(f"학생 학년: {student.get('grade', '정보 없음')}")
2) 새 키-값 쌍 추가 및 수정
# 비어있는 딕셔너리에 데이터를 추가하고 기존 값을 수정합니다.
person = {}
# 데이터 추가
person['name'] = '인수샘'
person['age'] = 30
print(f"추가 후: {person}")
# 기존 값 수정
person['age'] = 31
print(f"수정 후: {person}")
3) 딕셔너리 요소 삭제
# del 키워드와 pop() 메서드를 사용하여 요소를 삭제합니다.
car = {"brand": "현대", "model": "아이오닉", "year": 2024}
# 'year' 키와 해당 값 삭제
del car['year']
print(f"del 후: {car}")
# pop()을 사용하여 값을 꺼내오면서 삭제
model_name = car.pop('model')
print(f"삭제된 모델: {model_name}, 현재 딕셔너리: {car}")
4) 모든 키(Key)와 값(Value) 순회
# keys(), values(), items() 메서드를 활용하여 데이터를 확인합니다.
inventory = {"apple": 10, "banana": 5, "cherry": 20}
print(f"모든 품목: {list(inventory.keys())}")
print(f"모든 수량: {list(inventory.values())}")
# 키와 값을 동시에 순회
for item, count in inventory.items():
print(f"{item}의 재고는 {count}개입니다.")
5) 딕셔너리 비우기 및 확인
# clear()로 내용을 삭제하고 'in' 키워드로 특정 키의 존재 여부를 확인합니다.
user = {"id": "user01", "status": "active"}
print("status 키가 있나요?", 'status' in user)
user.clear()
print(f"비운 후 결과: {user}")
2. 응용 파이썬 예시 코드 (4개)
실무에서 자주 쓰이는 딕셔너리 활용 기법을 다룹니다.
1) 딕셔너리 컴프리헨션
# 기존 리스트를 바탕으로 조건이 포함된 딕셔너리를 생성합니다.
users = ["인수샘", "홍길동", "구운몽"]
# 이름의 길이를 값으로 갖는 딕셔너리 생성
name_lengths = {name: len(name) for name in users}
print(f"이름 길이 정보: {name_lengths}")
2) 딕셔너리 정렬
# 값을 기준으로 딕셔너리를 정렬합니다.
scores = {"수학": 100, "영어": 80, "국어": 95, "과학": 85}
# 값을 기준으로 내림차순 정렬 (람다 함수 활용)
sorted_scores = sorted(scores.items(), key=lambda item: item[1], reverse=True)
print(f"점수 내림차순 정렬: {sorted_scores}")
3) 복잡한 데이터 구조화 (JSON 유사 구조)
# 딕셔너리와 리스트를 조합하여 복잡한 데이터를 표현합니다.
api_response = {
"status": "success",
"count": 2,
"data": [
{"id": 101, "name": "상품A", "tags": ["전자기기", "컴퓨터"]},
{"id": 102, "name": "상품B", "tags": ["가구", "인테리어"]}
]
}
# 첫 번째 상품의 두 번째 태그 가져오기
first_product_second_tag = api_response["data"][0]["tags"][1]
print(f"첫 번째 상품의 두 번째 태그: {first_product_second_tag}")
4) setdefault() 메서드 활용
# 키가 없을 경우 기본값을 설정하고 바로 반환합니다. 데이터 그룹화에 유용합니다.
students = [('John', 'A'), ('Jane', 'B'), ('Dave', 'A'), ('Sarah', 'C')]
grades = {}
for name, grade in students:
# 해당 성적(grade) 리스트가 없으면 빈 리스트를 만들고 이름을 추가
grades.setdefault(grade, []).append(name)
print(f"성적별 학생 분류: {grades}")
3. 심화 파이썬 예시 코드 (1개)
1) 두 딕셔너리 병합 (Merge)
# Python 3.9 이상에서 사용 가능한 병합 연산자(|)를 소개합니다.
base_info = {"name": "구운몽", "age": 25}
extra_info = {"major": "국문학", "city": "서울"}
# 병합 연산자 | 사용
full_profile = base_info | extra_info
print(f"병합된 프로필: {full_profile}")
# 업데이트 연산자 |= 사용 (원본 수정)
base_info |= {"status": "졸업"}
print(f"업데이트된 원본: {base_info}")