신속한 사전에서 키-값 쌍을 제거하는 방법은 무엇입니까?


83

가능한 경우 예제와 같이 사전에서 키-값 쌍을 제거하고 싶습니다.

var dict: Dictionary<String,String> = [:]
var willRemoveKey = "SomeKey"
dict.removePair(willRemoveKey) //that's what I need

답변:


169

이것을 사용할 수 있습니다 :

dict[willRemoveKey] = nil

아니면 이거:

dict.removeValueForKey(willRemoveKey)

유일한 차이점은 두 번째 값이 제거 된 값 (또는 존재하지 않는 경우 nil)을 반환한다는 것입니다.

스위프트 3

dict.removeValue(forKey: willRemoveKey)

3
dict.removeValue(willRemoveKey).removeValueForKey의 이름이 변경된 것처럼 보이기 때문에 이제 호출해야 합니다. 도움을 주셔서 감사합니다!
Coty Embry

너무 좋고 깨끗합니다. 그것을 사랑하십시오!
dustinrwh

4
값이 선택 사항 인 경우 아래 첨자 구문이 어떻게 작동 할 수 있습니까?
WiseOldDuck

5
다른 사람이 문서가 이것이 O (n)라고 말하는 것을 알아 차렸습니까? 여기서 n은 사전의 크기입니다!
Andrew

1
@WiseOldDuck 아래 첨자를 할당하면 nil항상 키가 삭제됩니다. nil선택적 값 유형으로 사전에 참 값을 할당하려면 .some(nil).
BallpointBen

30

Swift 5 , Swift 4Swift 3 :

x.removeValue(forKey: "MyUndesiredKey")

건배


7
dict.removeValue(forKey: willRemoveKey)

또는 아래 첨자 구문을 사용할 수 있습니다.

dict[willRemoveKey] = nil

0

LOOP에서 조건 확인으로 제거

var eventDateDict = [String:String]()
//Declarations
var tempDict = eventDateDict
        for value in tempDict{
            let getDate = value.key
            if getDate < Date(){
                eventDateDict.removeValue(forKey: value.key)
            }
        }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.