딕셔너리 dict { : }
딕셔너리 생성 (Create)
1. 중괄호 {} 사용
# 빈 딕셔너리 생성
empty_dict = {}
print(empty_dict)
# 키-값 쌍을 직접 지정하여 딕셔너리 생성
person = {
"name": "John Doe",
"age": 30,
"city": "New York"
}
print(person)
2. dict() 생성자 사용
키워드 인자를 사용하여 키-값 쌍을 지정
# 키워드 인자를 사용하여 딕셔너리 생성
person = dict(name="John Doe", age=30, city="New York")
print(person)
리스트나 튜플의 리스트를 사용하여 딕셔너리를 생성
# 리스트의 리스트를 사용하여 딕셔너리 생성
data = [["name", "John Doe"], ["age", 30], ["city", "New York"]]
person = dict(data)
print(person)
# 튜플의 리스트를 사용하여 딕셔너리 생성
data = (("name", "John Doe"), ("age", 30), ("city", "New York"))
person = dict(data)
print(person)
# 리스트와 튜플 혼합
data = [[1, "Choi"], (2, 20), [3, 3.14]]
data_dic = dict(data)
print(data_dic)
두 개의 리스트를 zip 함수를 사용하여 딕셔너리를 생성
# 두개의 리스트를 zip 을 사용해서 딕셔너리 생성
keys = ["name", "age", "city"]
values = ["John Doe", 30, "New York"]
person = dict(zip(keys, values))
print(person)
3. 딕셔너리 표현식 (Dictionary Comprehension)
{키_표현식: 값_표현식 for 변수 in 반복 가능한 객체 if 조건} 형식을 사용
# 1부터 5까지의 숫자를 키로, 제곱을 값으로 하는 딕셔너리 생성
squares = {num: num**2 for num in range(1, 6)}
print(squares)
# 문자열 리스트에서 각 문자를 키로, 문자의 개수를 값으로 하는 딕셔너리 생성
word = "happyhappy"
char_count = {c: word.count(c) for c in word}
print(char_count)
4. fromkeys() 메서드
fromkeys() 메서드는 주어진 키 리스트와 값으로 딕셔너리를 생성합니다. 모든 키는 동일한 값을 갖습니다.
# 키 리스트를 사용하여 딕셔너리 생성 (모든 값은 None)
keys = ["name", "age", "city"]
person = dict.fromkeys(keys)
print(person)
# 키 리스트와 값을 지정하여 딕셔너리 생성
keys = ["name", "age", "city"]
person = dict.fromkeys(keys, "hahaha")
print(person)
딕셔너리의 읽기 (Read)
1. 키를 사용해 값 접근 ['키']
my_dict = {"name": "John Doe", "age": 30, "city": "New York"}
name = my_dict["name"] # "name" 키에 해당하는 값을 읽음
print(name) # "John Doe" 출력
age = my_dict["age"] # "age" 키에 해당하는 값을 읽음
print(age) # 30 출력
만약 존재하지 않는 키를 사용하면 KeyError 발생
2. get() 메서드 사용
get() 메서드는 키에 해당하는 값을 반환합니다.
존재하지 않는 키를 사용해도 KeyError가 발생하지 않고, 대신 None을 반환합니다.
get() 메서드의 두 번째 인자로 디폴트 값을 지정할 수 있습니다. 존재하지 않는 키를 사용하면 디폴트 값이 반환됩니다.
my_dict = {"name": "John Doe", "age": 30, "city": "New York"}
name = my_dict.get("name") # "name" 키에 해당하는 값을 읽음
print(name) # "John Doe" 출력
country = my_dict.get("country") # "country" 키에 해당하는 값을 읽음 (None 반환)
print(country) # None 출력
country = my_dict.get("country", "Unknown") # "country" 키에 해당하는 값을 읽음 (디폴트 값 "Unknown" 반환)
print(country) # "Unknown" 출력
3. for 루프 사용
for 루프를 사용하여 딕셔너리의 모든 키-값 쌍을 순회하며 읽을 수 있습니다.
items() 메서드는 딕셔너리의 키-값 쌍을 튜플 형태로 반환합니다.
my_dict = {"name": "YoungJin", "age": 33, "city": "Seoul"}
for key, value in my_dict.items():
print(f"{key}: {value}") # 키와 값을 출력
4. keys(), values(), items() 메서드
keys() 메서드는 딕셔너리의 모든 키를 반환합니다.
values() 메서드는 딕셔너리의 모든 값을 반환합니다.
items() 메서드는 딕셔너리의 모든 키-값 쌍을 튜플 형태로 반환합니다.
my_dict = {"name": "YoungJin", "age": 33, "city": "Seoul"}
keys = my_dict.keys()
print(keys)
values = my_dict.values()
print(values)
items = my_dict.items()
print(items)
in 연사자를 사용하여 키 존재여부 확인
my_dict = {"name": "YoungJin", "age": 33, "city": "Seoul"}
if "name" in my_dict:
print("이름 키가 존재합니다.") # 출력됨
if "country" in my_dict:
print("국가 키가 존재합니다.") # 출력되지 않음
이름 키가 존재합니다.
딕셔너리 수정 (Update)
my_dict = {"name": "John Doe", "age": 30, "city": "New York"}
# 1. 키를 사용하여 값 수정
my_dict["name"] = "YoungJin"
my_dict["age"] = 33
my_dict["city"] = "Suwon"
print(my_dict)
# 2. update() 메서드 사용
my_dict.update({"name": "유나", "age": 26, "city": "안양", "height": 165})
print(my_dict)
딕셔너리 키와 값으로 리스트 생성
my_dict = {"name": "영진", "age": 36, "city": "수원"}
keys = list(my_dict.keys())
print(keys)
values = list(my_dict.values())
print(values)
딕셔너리 삭제 (Delete)
1. del 키워드 사용
특정 키에 해당하는 아이템을 삭제
my_dict = {"name": "영진", "age": 22, "city": "서울"}
del my_dict["age"] # "age" 키에 해당하는 아이템 삭제
print(my_dict) # {'name': '영진', 'city': '서울'} 출력
del my_dict["age"] # KeyError 발생 (존재하지 않는 키)
2. pop() 메서드 사용
pop() 메서드는 특정 키에 해당하는 아이템을 삭제하고, 삭제된 값을 반환한다
my_dict = {"name": "영진", "age": 22, "city": "서울"}
age = my_dict.pop("age")
print(age) # 22 출력
print(my_dict) # {'name': '영진', 'city': '서울'}
pop() 메서드의 두 번째 인자로 디폴트 값을 지정할 수 있다.
존재하지 않는 키를 사용하면 디폴트 값 반환
my_dict = {"name": "영진", "age": 22, "city": "서울"}
country = my_dict.pop("country", "Unknown")
print(country) # Unknown 출력
존재하지 않는 키를 사용하고 디폴트 값을 지정하지 않으면 KeyError 발생
my_dict = {"name": "영진", "age": 22, "city": "서울"}
country = my_dict.pop("country")
print(country) # KeyError: 'country'
3. popitem() 메서드 사용
popitem() 메서드는 딕셔너리에서 임의의 아이템을 삭제하고, 삭제된 아이템을 (키, 값) 튜플 형태로 반환합니다.
Python 3.7 이상에서는 LIFO (Last-In, First-Out) 순서로 아이템을 삭제합니다. 즉, 가장 최근에 추가된 아이템이 먼저 삭제됩니다.
my_dict = {"name": "고길동", "age": 46, "city": "인천"}
print(my_dict.popitem()) # ('city', '인천') 출력
4.. clear() 메서드 사용
딕셔너리의 모든 아이템 삭제
my_dict = {"name": "임꺽정", "age": 22, "city": "부산"}
my_dict.clear()
print(my_dict) # {} 출력
'공부 > AI' 카테고리의 다른 글
통계학 Statistics 공부 for AI - 1 (0) | 2024.11.30 |
---|---|
파이썬 컨테이너 Container 튜플 tuple (0) | 2024.11.28 |
파이썬 컨테이너 Container 리스트 list (0) | 2024.11.24 |
패스트캠퍼스 강의 정리 - Python 프로그래밍 기초 1 (0) | 2024.11.23 |
파이썬 크롤링 연습 (0) | 2024.11.21 |