迅速な辞書からキーと値のペアを削除するにはどうすればよいですか?


83

可能であれば、例のようにキーと値のペアを辞書から削除したいと思います。

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

回答:


169

あなたはこれを使うことができます:

dict[willRemoveKey] = nil

またはこれ:

dict.removeValueForKey(willRemoveKey)

唯一の違いは、2番目の値が削除された値(または存在しなかった場合はnil)を返すことです。

スウィフト3

dict.removeValue(forKey: willRemoveKey)

3
これは今と呼ばれるべきでdict.removeValue(willRemoveKey)、それは.removeValueForKeyの名前が変更されたように見えるので、 -助けに感謝を!
コティエンブリー2017年

とても素敵でとてもきれいです。大好きです!
dustinrwh 2017年

4
値がオプションの場合、添え字構文はどのように機能しますか?
WiseOldDuck 2017

5
ドキュメントがこれがO(n)であると言っていることに気付いた人はいますか?ここでnは辞書のサイズです!
アンドリュー

1
@WiseOldDuck添え字を割り当てると、nil常にキーが削除されます。nilオプションの値タイプを使用してディクショナリに真の値を割り当てるには、を割り当て.some(nil)ます。
BallpointBen

30

Swift 5Swift 4、およびSwift 3

x.removeValue(forKey: "MyUndesiredKey")

乾杯



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.