Làm cách nào để xóa cặp khóa-giá trị khỏi từ điển nhanh?


81

Tôi muốn xóa cặp khóa-giá trị khỏi từ điển như trong ví dụ nếu có thể.

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

Câu trả lời:


165

Bạn có thể sử dụng cái này:

dict[willRemoveKey] = nil

hoặc cái này:

dict.removeValueForKey(willRemoveKey)

Sự khác biệt duy nhất là giá trị thứ hai sẽ trả về giá trị đã loại bỏ (hoặc nil nếu nó không tồn tại)

Swift 3

dict.removeValue(forKey: willRemoveKey)

3
cái này bây giờ sẽ được gọi dict.removeValue(willRemoveKey)vì có vẻ như .removeValueForKey đã được đổi tên - cảm ơn bạn đã giúp đỡ!
Coty Embry

Thật đẹp và thật sạch. Yêu nó!
dustinrwh

4
Nếu các giá trị của bạn là tùy chọn thì cú pháp chỉ số con có thể hoạt động như thế nào?
WiseOldDuck

5
Có ai khác nhận thấy rằng các tài liệu nói rằng đây là O (n) trong đó n là kích thước của từ điển ?!
Andrew

1
@WiseOldDuck Gán chỉ số con để nilluôn xóa khóa. Để gán một nilgiá trị true trong từ điển với loại Giá trị tùy chọn, hãy gán .some(nil).
BallpointBen

30

Swift 5 , Swift 4Swift 3 :

x.removeValue(forKey: "MyUndesiredKey")

Chúc mừng


7
dict.removeValue(forKey: willRemoveKey)

Hoặc bạn có thể sử dụng cú pháp chỉ số dưới:

dict[willRemoveKey] = nil

0

Xóa bằng Kiểm tra điều kiện trong 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)
            }
        }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.