안녕하세요. 알고리즘 문제를 풀 때 Swift에서 딕셔너리 삭제를 어떻게 해야 할지 하다 찾다 Swift에서 딕셔너리 사용법을 정리해보았습니다.
주요 내용: Dictionary 초기화, Dictionary 조회하기, 값 삭제하기
1. Dictionary 초기화
var dic : [Int: Int] = [:]
var dic2 = [String: Int]()
var dic3 : [Int: Int] = [1:2, 5: 8, 9:0]
2. Dictionary 조회하기
2.1. dictionaryName[key]
딕셔너리의 키에 대응되는 값을 조회하기 위해서는 dictionaryName[key]
합니다.
var dic : [Int: Int] = [1:2, 5: 8, 9:0]
print(dic[1]) // "Optional(2)\n"
print(dic[10]) // 10은 없는 키값이므로 "nil\n" 출력
그러나 예시에서 볼 수 있는 것처럼 딕셔너리의 값을 조회하면 optional 타입으로 반환됩니다.
이를 방지하려면 강제로 !
를 붙여 unwrapping을 하거나 옵셔널 바인딩을 사용해야 합니다. 옵셔널 바인딩을 사용하는 것이 안전하지만 알고리즘 문제풀이에서 값이 확실하게 주어질 때는 강제 언래핑을 사용합니다. (귀찮으니까)
var dic : [Int: Int] = [1:2, 5: 8, 9:0]
print(dic[1]!) // "2\n"
2.2. for 문으로 조회하기
2.2.1. key, value 모두 나타내기 - for (key, value) in dictionary
var dic : [String: Int] = ["Swift": 5, "Xcode": 12]
for (key, value) in dic {
print("key: \(key), value: \(value)")
}
/*
key: Swift, value: 5
key: Xcode, value: 12
*/
2.2.2. key 만 나타내기 - for key in dictionary.keys
var dic : [String: Int] = ["Swift": 5, "Xcode": 12]
for key in dic.keys {
print("key: \(key)")
}
/*
key: Xcode
key: Swift */
2.2.3. value 만 나타내기 - for val in dictionary.values
var dic : [String: Int] = ["Swift": 5, "Xcode": 12]
for val in dic.values {
print("value: \(val)")
}
/*
value: 5
value: 12 */
3. 값 삭제하기
3.1. 기존의 value에 nil을 할당하기
var dic : [String: Int] = ["Swift": 5, "Xcode": 12]
dic["Swift"] = nil // nil
dic // ["Xcode": 12]
3.2. removeValueForKey()
사용하기
var dic2 : [String: Int] = ["Swift": 5, "Xcode": 12]
dic2.removeValue(forKey: "Swift") // 5
dic2 // "Xcode": 12]
두 방법의 차이점은 removeValueForKey()
메소드는 삭제되는 키값에 대응되는 값을 리턴한다는 점에 있습니다.
간단하게 적어보았습니다. 도움이 되셨기를 바라면서 이만 총총..
'iOS > Swift' 카테고리의 다른 글
[Swift] 메모리 참조, ARC, Strong Reference Cycle 이해하기 (0) | 2021.09.01 |
---|---|
[Swift] final 키워드 이해하기 (0) | 2021.08.15 |
[Swift] 탈출클로저 이해하기 (0) | 2021.06.29 |
댓글