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 4 và Swift 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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.