我有一个简单的字典,它的定义如下:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
现在我想在这个字典中添加一个元素:3:"efg"
我如何能追加3:“efg”到这个现有的字典?
我有一个简单的字典,它的定义如下:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
现在我想在这个字典中添加一个元素:3:"efg"
我如何能追加3:“efg”到这个现有的字典?
当前回答
您可以使用以下方式添加,并将Dictionary更改为NSMutableDictionary
dict["key"] = "value"
其他回答
到目前为止,我发现的最好的方法是通过使用Swift的高阶函数之一来将数据追加到字典中。“减少”。遵循以下代码片段:
newDictionary = oldDictionary.reduce(*newDictionary*) { r, e in var r = r; r[e.0] = e.1; return r }
@Dharmesh在你的情况下,
newDictionary = dict.reduce([3 : "efg"]) { r, e in var r = r; r[e.0] = e.1; return r }
请让我知道,如果你发现任何问题在使用上述语法。
字典updateValue更新字典中现有键的值,如果键不存在,则添加新的键-值对。
的例子,
var caseStatusParams: [String: AnyObject] = ["userId" : UserDefault.userID ]
caseStatusParams.updateValue("Hello" as AnyObject, forKey: "otherNotes")
结果- - - - - -
▿ : 2 elements
- key : "userId"
- value : 866
▿ : 2 elements
- key : "otherNotes"
- value : "Hello"
我添加了字典扩展
extension Dictionary {
func cloneWith(_ dict: [Key: Value]) -> [Key: Value] {
var result = self
dict.forEach { key, value in result[key] = value }
return result
}
}
你可以像这样使用克隆
newDictionary = dict.reduce([3 : "efg"]) { r, e in r.cloneWith(e) }
如果你的字典是Int到String,你可以简单地做:
dict[3] = "efg"
如果你的意思是向字典的值中添加元素,一个可能的解决方案是:
var dict = Dictionary<String, Array<Int>>()
dict["key"]! += [1]
dict["key"]!.append(1)
dict["key"]?.append(1)
在字典中没有附加数据的函数。您只需根据现有字典中的新键分配值。它将自动向字典中添加值。
var param = ["Name":"Aloha","user" : "Aloha 2"]
param["questions"] = "Are you mine?"
print(param)
输出是这样的
["名称":“阿罗哈”,“用户”:“阿罗哈2”,“问题”:“你是我的”吗?”)