如何快速从字典中删除空键值对

时间:2018-12-06 13:42:47

标签: swift dictionary

我们说我有一本字典

let dic = ["a": "1", "b": "2", "c": "", "d": "3"]

我要删除“ c”键及其值

3 个答案:

答案 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"]
相关问题