본문 바로가기
iOS/Swift

[Swift] Dictionary 사용하기

by jalynneyoon 2021. 8. 6.

안녕하세요. 알고리즘 문제를 풀 때 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()메소드는 삭제되는 키값에 대응되는 값을 리턴한다는 점에 있습니다.


간단하게 적어보았습니다. 도움이 되셨기를 바라면서 이만 총총..

댓글