Python : Dictionary

m_ngyeong·2024년 10월 10일
0

Python

목록 보기
7/17
post-thumbnail

🐍 Python


Dictionary

딕셔너리(Dictionary)는 파이썬에서 가장 중요한 자료구조 중 하나로, 키(key)와 값(value)의 쌍으로 이루어진 데이터를 저장하는 가변적인 자료형이다. 딕셔너리는 순서가 없으며(Python 3.7 이후로는 삽입 순서를 유지하지만, 본질적으로는 순서가 중요하지 않음), 키를 이용해 값을 빠르게 조회할 수 있다.

  • 형태: 키(key)와 값(value)의 쌍 ({Key: Value, ...})
  • 키는 고유하며 중복될 수 없고, 값은 중복될 수 있음
  • 키는 불변 객체(문자열, 숫자, 튜플 등)여야 하며, 값은 모든 자료형이 될 수 있음
  • 빠른 검색 속도: 딕셔너리는 키를 사용해 값을 조회하므로, 리스트보다 검색이 빠름

딕셔너리 생성

딕셔너리는 중괄호 {}를 사용해 생성하며, 키와 값을 콜론(:)으로 연결하고, 각각의 키-값 쌍은 쉼표(,)로 구분한다.

# 빈 딕셔너리 생성
my_dict = {}

# 키-값 쌍으로 딕셔너리 생성
person = {"name": "John", "age": 30, "city": "New York"}
print(person)  # {'name': 'John', 'age': 30, 'city': 'New York'}

딕셔너리의 기본 연산

(키를 통해) 값 접근

딕셔너리에서 특정 값을 가져오려면, 키를 사용하여 접근할 수 있다.

person = {"name": "John", "age": 30, "city": "New York"}

# 키를 사용한 값 접근
print(person["name"])  # John
print(person["age"])   # 30

값 추가 및 업데이트

새로운 키-값 쌍을 추가하거나, 기존 키의 값을 업데이트할 수 있다.

# 값 추가
person["job"] = "Engineer"
print(person)  # {'name': 'John', 'age': 30, 'city': 'New York', 'job': 'Engineer'}

# 값 업데이트
person["age"] = 31
print(person)  # {'name': 'John', 'age': 31, 'city': 'New York', 'job': 'Engineer'}

값 삭제 : del / pop()

딕셔너리에서 특정 키-값 쌍을 삭제하려면 del 또는 pop()을 사용할 수 있다.

person = {'name': 'John', 'age': 31, 'city': 'New York', 'job': 'Engineer'}

# del을 사용한 값 삭제
del person["city"]
print(person)  # {'name': 'John', 'age': 31, 'job': 'Engineer'}

# pop()을 사용한 값 삭제 (삭제된 값 반환)
age = person.pop("age")
print(person)  # {'name': 'John', 'job': 'Engineer'}
print(age)     # 31 (pop()은 삭제된 값을 반환함)

키 또는 값만 가져오기 : keys() / values()

딕셔너리에서 모든 키모든 값을 가져오려면 각각 keys() 또는 values() 메소드를 사용한다.

person = {"name": "John", "age": 30, "city": "New York"}

# 모든 키 가져오기
print(person.keys())   # dict_keys(['name', 'age', 'city'])

# 모든 값 가져오기
print(person.values()) # dict_values(['John', 30, 'New York'])

키-값 쌍 가져오기 : items()

딕셔너리의 모든 키와 값을 한 번에 가져오려면 items() 메소드를 사용한다. 이 메소드는 각 키-값 쌍을 튜플 형태로 반환한다.

person = {"name": "John", "age": 30, "city": "New York"}

# 모든 키-값 쌍 가져오기
print(person.items())  # dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])

반복문 사용

딕셔너리는 for 문을 사용해 키, 값, 또는 키-값 쌍을 반복적으로 처리할 수 있다.

person = {"name": "John", "age": 30, "city": "New York"}

# 딕셔너리 키만 반복
for key in person:
    print(key)  # name, age, city

# 딕셔너리 값만 반복
for value in person.values():
    print(value)  # John, 30, New York

# 딕셔너리의 키-값 쌍 반복
for key, value in person.items():
    print(f"{key}: {value}")
    # name: John
    # age: 30
    # city: New York

딕셔너리 안에 키가 있는지 확인 : in 연산자

in 연산자를 사용해 딕셔너리에 특정 키가 있는지 확인할 수 있다.

person = {"name": "John", "age": 30, "city": "New York"}

# 키 존재 여부 확인
print("name" in person)  # True
print("job" in person)   # False

딕셔너리 메소드들

clear() : 딕셔너리의 모든 요소를 삭제

person.clear()
print(person)  # {}

copy() : 딕셔너리를 복사

person_copy = person.copy()
print(person_copy)  # {'name': 'John', 'age': 30, 'city': 'New York'}

get() : 키를 사용하여 값을 가져오며, 키가 없을 경우 기본값을 반환

print(person.get("name"))  # John
print(person.get("job"))  # None
print(person.get("job", "Unknown"))  # Unknown (키 'job'이 없으므로 기본값 반환)
  • None 키워드 : null 값 또는 전혀 값이 없음을 의미함.
    NoneFalse 또는 빈 문자열과 같지 않고, 자체 데이터 유형(NoneType)이며 NoneNone이 될 수 있음.

update() : 다른 딕셔너리의 키-값 쌍을 현재 딕션너리에 추가하거나, 기존의 키가 있으면 값을 업데이트

#문법
dict.update(other_dict)
  • other_dict : 다른 딕셔너리나 키-값 쌍을 포함하는 반복 가능한 객체 (리스트, 튜플 등).
# 기존 딕셔너리
my_dict = {"name": "Alice", "age": 25}

# 다른 딕셔너리의 키-값 쌍을 추가
my_dict.update({"age": 30, "city": "New York"})
print(my_dict)  # {'name': 'Alice', 'age': 30, 'city': 'New York'}
# update()는 age의 값을 25에서 30으로 업데이트하고, 새로운 키 city를 추가

# 키-값 쌍을 리스트로 전달
my_dict.update([("country", "USA"), ("phone", "123-4567")])
print(my_dict)  # {'name': 'Alice', 'age': 30, 'city': 'New York', 'country': 'USA', 'phone': '123-4567'}
# update()는 리스트 안에 튜플로 전달된 키-값 쌍을 추가(country와 phone)

딕셔너리 사용 예시

예시 1: 학생의 성적 관리

grades = {"Alice": 85, "Bob": 92, "Charlie": 78}

# 성적 조회
print(grades["Alice"])  # 85

# 성적 추가
grades["David"] = 88

# 성적 업데이트
grades["Alice"] = 90

print(grades)  # {'Alice': 90, 'Bob': 92, 'Charlie': 78, 'David': 88}

예시 2: 여러 값들을 저장하는 딕셔너리

딕셔너리는 리스트나 다른 딕셔너리를 값으로 가질 수 있다.

students = {
    "Alice": {"age": 25, "grades": [85, 90, 88]},
    "Bob": {"age": 22, "grades": [78, 88, 85]},
}

# Alice의 나이와 성적 조회
print(students["Alice"]["age"])    # 25
print(students["Alice"]["grades"]) # [85, 90, 88]

딕셔너리는 키를 사용해 값을 검색하여 빠른 검색이 가능하며 문자열, 숫자, 리스트, 딕셔너리 등 다양한 데이터 구조를 값으로 저장할 수 있다. 또한 딕셔너리는 키-값 쌍으로 이루어져 있어 구조화된 데이터나 레코드를 관리하는 데 유용하다.



참고,
https://www.w3schools.com/python/ref_keyword_none.asp

profile
ʚȉɞ

0개의 댓글