티스토리 뷰
Iterating Over the Contents of a Dictionary
딕셔너리 컨텐츠 순회탐색하기
모든 딕셔너리(dictionary)는 정렬되지 않은(unordered) 키-값(key-value) 쌍의 컬렉션으로 되어있습니다.
dictionary또한 Array처럼 for-in 루프를 사용해서 순회할 수 있습니다. for-in 루프 순회 간 딕셔너리의 값을 하나하나 분해해서 key-value 페어 값으로서 요소들을 확인할 수가 있습니다.
let numberDictionary = ["one": 1, "two": 2, "three": 3]
for (key, value) in numberDictionary {
print("\(key) is the \(value)")
}
결과를 보면, 키-값(key-value) 쌍의 순서에는 변함이 없고 안정적이지만, 각 페어 간 순서는 예측할 수 없습니다.
만약 정렬된 상태의 키-값 쌍이 필요하고, Dictinoary에서 제공하는 빠른 키 조회가 필요하지 않다면, KeyValuePairs 타입을 대안으로서 참고 하세요.
딕셔너리의 값들을 순회할 때 특정 값만 찾을 수 있도록, 기본 구현에서 제공되는 contains(where:) 이나 firstIndex(where:) 메서드를 사용할 수도 있습니다. 아래의 예시는 각 딕셔너리 페어의 값(value)이 "t" 문자열로 시작하는 첫 인덱스의 값을 출력하는 예시입니다.
let numberDictionary = [1: "one", 2: "two", 3: "three"]
for (key, value) in numberDictionary {
print("\(key) is the \(value)")
}
let tIndex = numberDictionary.firstIndex(where: { $0.value.hasPrefix("t") })
if let index = tIndex {
print("first index : \(numberDictionary[index].key) is the \(numberDictionary[index].value)")
} else {
print("first index : Not Found")
}
해당 예시를 보자면, numberDictionary 딕셔너리에 대해서 기존의 key 접근이 아닌 다른 방법, dictionary index(firstIndex)을 사용하고 있습니다.
key 접근이 옵셔널 타입의 값을 반환했던 반면, index 기반 접근은 그에 대응되는 키-값 페어를 논-옵셔널(non-optional) 튜플 방식으로 반환하게 됩니다.
위의 예시의 경우, "t"로 시작하는 가장 첫 인덱스의 키-값을 찾아 출력하는 모습입니다.
dictionary의 접근 한도
딕셔너리의 색인(indices)는 해당 딕셔너리의 추가된 값들을 저장할 충분한 용량이 있는 한 유효합니다.
만약 dictionary가 가용 버퍼를 초과하게 된다면, 존재하는 색인들이 사전 통지 없이 무효화될 수도 있습니다.
let dictionary = [Character: Int](minimumCapacity: 10)
딕셔너리에 얼마나 많이 새로운 값들이 있는지 알고 싶다면, 위와 같이 init(minimumCapacity:) 생성자를 사용해서 정확한 크기의 버퍼를 할당할 수도 있습니다.
공식 애플 개발자 문서 [Dictionary] 참고 자료 ▼
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
swift Set 기본 메서드, 집합 컬렉션 비교 기능 알아보기 (0) | 2020.06.16 |
---|---|
swift iOS 비정렬 비중복 컬렉션, Set 개요 알아보기 (0) | 2020.06.15 |
iOS swift Dictionary, 딕셔너리 값 읽고 쓰고 제거하는 방법 (0) | 2020.06.12 |
iOS 앱에 Core ML 모델 통합해서 사용하는 방법 (0) | 2020.05.31 |
iOS앱에 사용할 CoreML Model 얻고 활용하기 (0) | 2020.05.30 |
- Total
- Today
- Yesterday
- 알고리즘문제
- swift string
- swift문제
- swift알고리즘
- 컬렉션
- 자연어처리
- swift 기초
- 부스트코스
- publisher
- 스위프트
- uikit
- CoreML
- 김프매매
- ios
- swift 문자열
- 개발자문서
- 백준알고리즘
- swift언어
- 백준swift
- SwiftUI
- 프로그래머스swift
- 프로그래머스
- swift reduce
- Protocol
- Collection
- Swift 알고리즘
- 프로토콜
- createML
- swift
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |