최근에 코테를 치면서 딕셔너리를 잘 못 다루는 거 같아.. 부족했던 점을 추가해 본다!!
https://h2kangrok.tistory.com/15
[Swift] Dictionary
코테를 풀다가 딕셔너리를 사용해서 푸는 문제인데... 왜?? 딕셔너리로 풀어야 하는지 이해가 되지 않았다!! 왜냐!! 그냥 딕셔너리에 대해 몰랐으니깐.. 그래서..! 딕셔너리에 대해서 알아보자!!
h2kangrok.tistory.com
Dictionary 일대다 대응
let dic:[String:[String]] = ["한국기업": ["삼성", "현대차", "LG", "SK"],
"미국기업": ["애플", "테슬라", "엔비디아", "아마존"]]
print(dic["미국기업"])
// Optional(["애플", "테슬라", "엔비디아", "아마존"])
print(dic["미국기업"]!)
// ["애플", "테슬라", "엔비디아", "아마존"]
위 코드는 딕셔너리를 정의한 것으로, 키와 그 키에 대응하는 값(즉 문자열 배열)으로 구성됨.
딕셔너리의 한 키에 여러 개의 값을 배열로 저장할 수 있음. 이렇게 함으로써 관련된 데이터를 그룹화하여 쉽게 관리하고 접근할 수 있음.
여기서 다시 알아야 할 점은 딕셔너리에서 키을 통해 값을 꺼내오면, 반환값은 기본적으로 옵셔널(Optional)이 됨.
딕셔너리에 존재하지 않는 키값이 입력되면 nil이 반환될 수 있기 때문임.
옵셔널 타입으로 반환하기 싫다면 기본값을 액세스 해주거나 강제로 꺼내주어야 함.
Dictionary에서 반복문을 통해 키(key), 값(value) 가져오기
- for (key, value) in dict를 통해 key, value를 함께 반복
- for key in dict.keys를 통해 key 만 반복
- for value in dict.values를 통해 value 만 반복
for (key, value) in dic {
print(key, value)
}
// 미국기업 ["애플", "테슬라", "엔비디아", "아마존"]
// 한국기업 ["삼성", "현대차", "LG", "SK"]
for key in dic.keys {
print(key)
}
// 미국기업
// 한국기업
for value in dic.values {
print(value)
}
// ["삼성", "현대차", "LG", "SK"]
// ["애플", "테슬라", "엔비디아", "아마존"]
Dictionary 정렬하기
let dic:[String: Int] = ["애플": 3, "테슬라": 2, "엔비디아": 1, "아마존": 4 ]
let sortedDic = dic.sorted { $0.value < $1.value }
print(sortedDic)
// [(key: "엔비디아", value: 1), (key: "테슬라", value: 2), (key: "애플", value: 3), (key: "아마존", value: 4)]
Dictionary는 순서가 없는 컬렉션임!!
딕셔너리는 정렬이 되지 않는 컬렉션이기 때문에!! 정렬된 형태로 사용하려고 하면 배열이나 튜플로 변환하여함 함.
그렇기 때문에 sort()가 아닌 sorted()를 사용하여 새 배열을 만들어 정렬한 후 리턴해줌
'Swift' 카테고리의 다른 글
| [Swift] stride() 알아보기 (1) | 2024.05.27 |
|---|---|
| [Swift] Unit Test는 무엇인가?? (3) | 2024.05.15 |
| [Swift] replacingOccurrences(of:with:) (2) | 2024.05.12 |
| [Swift] 클로저(Closures) (3) | 2024.05.05 |
| [Swift] 옵셔널(Optional)[4] nil 병합 연산자(??) (Nil-Coalescing Operation) (0) | 2024.03.28 |