我们说我有一本字典
let dic = ["a": "1", "b": "2", "c": "", "d": "3"]
我要删除“ c”键及其值
答案 0 :(得分:3)
这应该做。
let dic = ["a": "1", "b": "2", "c": "", "d": "3"]
let filteredDict = dic.filter( { !$0.value.isEmpty })
print(filteredDict) // Prints ["a": "1", "b": "2", "d": "3"]
编辑:如果您只想删除特定密钥,则可以使用David的answer。但这没有任何意义,因为如果您知道要删除的密钥,那么是否为空就无关紧要了吗?我假设您不知道哪个键是空的,在这种情况下,您将不得不喜欢此答案中的显示方式。
答案 1 :(得分:0)
以下是使用带有forEach
循环的过滤器的替代方法,该循环可更新原始字典:
var dic = ["a": "1", "b": "2", "c": "", "d": "3"]
dic.filter({$0.value.isEmpty}).forEach( { dic[$0.key] = nil})
答案 2 :(得分:-1)
您只需要将要删除的密钥的值设置为nil
。只需确保使用var
关键字将字典声明为可变字典即可。
var dic = ["a": "1", "b": "2", "c": "", "d": "3"]
dic["c"] = nil
print(dic) //["a": "1", "b": "2", "d": "3"]