반응형
딕셔너리 자료형
딕셔너리는 말 그대로 '사전' 이라는 뜻이다. 딕셔너리는 Key 와 Value 를 한쌍으로 가지는 자료형이다. 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고 Key 를 통해 Value를 얻는다.
아래는 딕셔너리의 기본 모습이다.
{Key1: Value1, Key2: Value2, Key3: Value3, ...}
딕셔너리의 특징
- 순서 유지
- Key 제약 (불변 타입만 가능)
- 중복 Key 불가
딕셔너리의 메서드
dperson.keys() # 모든 키 반환
person.values() # 모든 값 반환
person.items() # (key, value) 튜플 리스트 반환
person.values() # dict_values([85, 92,78])
sum(person.values()) # 255
len(person) # 3 (딕셔너리는 len() 으로 key 개수 반환)
# 딕셔너리를 그대로 순회, key 만 순회대상이 된다.
max(person) # key들을 문자열 비교해서 max 구함
max(person, key= person.get) # 설정한 key 값을 기준으로 비교
# items
top_student, top_score = max(students.items(), key=lambda x: x[1])
.pop(key, default) # 키를 삭제하면서 그 값을 반환
.setdefault(key, default) # 키가 있으면 값을 반환, 없으면 default 를 새로 만들면서 그 값을 반환. 그룹핑할때 사용
.update() # 다른 딕셔너리로 값을 일괄 갱신
.get(key, default) # 키가 없어도 에러 없이 안전하게 접근
dict.fromkeys() # 여러 키를 같은 초기값으로 한번에 생성할 때
collections.defaultdict # 없는 키에 접근하면 자동으로 기본값 생성
.items() : 는 (key, value) 튜플들을 반환하니, key = lambda x: x[1] 로 튜플의 두번째 요소(값) 을 기준으로 비교하는 방식이다.
딕셔너리 컴프리헨션
squares = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}반응형