当前位置: 首页 > 知识库问答 >
问题:

如何在Swift中组合两个字典实例?

甄正信
2023-03-14

如何使用Swift将一本词典附加到另一本词典?

我正在使用AlamoFire库将JSON发送到REST服务器

词典1

var dict1: [String: AnyObject] = [
    kFacebook: [
        kToken: token
    ]
]

词典2

var dict2: [String: AnyObject] = [
    kRequest: [
        kTargetUserId: userId
    ]
]

如何组合这两个词典以生成一个新词典,如下所示?

let parameters: [String: AnyObject] = [
    kFacebook: [
        kToken: token
    ],
    kRequest: [
        kTargetUserId: userId
    ]
]

我尝试了dict1=dict2,但出现了编译错误:

二进制运算符“=”不能应用于两个“[字符串:AnyObject]”操作数

共有3个答案

纪辰沛
2023-03-14

对于Swift

对于Swift

Swift 4有一个新功能:<代码>让参数=dict1。在r[e.0]=e.1}中减少(到:dict2){(r,e)}

挖掘标准库非常重要:mapreducedropFirstforEach等都是简洁代码的主要组成部分。功能位很有趣!

公冶谦
2023-03-14
var d1 = ["a": "b"]
var d2 = ["c": "e"]

extension Dictionary {
    mutating func merge(dict: [Key: Value]){
        for (k, v) in dict {
            updateValue(v, forKey: k)
        }
    }
}

d1.merge(d2)

参考令人敬畏的美元

白和泽
2023-03-14

我喜欢这种方法:

<代码>DICROM。forEach{(key,value)in dicTo[key]=value}

Swift 4和5

使用Swift 4,Apple引入了一种更好的方法来合并两个字典:

let dictionary = ["a": 1, "b": 2]
let newKeyValues = ["a": 3, "b": 4]

let keepingCurrent = dictionary.merging(newKeyValues) { (current, _) in current }
// ["b": 2, "a": 1]

let replacingCurrent = dictionary.merging(newKeyValues) { (_, new) in new }
// ["b": 4, "a": 3]

您在这里有两个选项(与在容器上操作的大多数函数一样):

  • <代码>合并变异现有词典
  • 合并返回新词典
 类似资料:
  • 问题内容: 因为不接受运算符,有没有一种快速比较两个字典的简便方法? 通过比较两个字典,我的意思是检查它们是否具有相同的精确键,并且对于每个键都具有相同的值。 问题答案: 正如Hot Licks所述,您可以使用NSDictionary方法isEqualToDictionary()来检查它们是否相等,如下所示: 您还可以实现自定义运算符“ ==”,如下所示: Xcode 9•Swift 4 从文档开

  • 问题内容: 我有两个数组。 我需要合并这些数组,并在下拉列表中显示为 我怎么能使用swift.im新手来快速获得此结果,有人可以帮忙吗? 问题答案: 压缩数组并连接结果:

  • 问题内容: 我有两个长度相同的清单: 和 我想在我有的地方创建字典 最好的方法是什么? 问题答案: dict(zip([1,2,3,4], [a,b,c,d])) 如果列表很大,则应使用。 如果键的数量多于值,并且您想为额外的键填写值,则可以使用。 这里,,,和是变量-它会正常工作(只要它们被定义),但你可能是指,如果你希望他们为字符串。 从每个可迭代对象中获取第一个项目,并生成一个元组,然后从每

  • 问题内容: 如何使用将一个附加到另一个? 我正在使用图书馆发送到。 字典1 字典2 如何将两个字典结合在一起,制作一个新字典,如下所示? 我已经尝试过,但是出现了编译错误: 二进制运算符’+ =’不能应用于两个’[String:AnyObject]’操作数 问题答案: 请参阅很棒的Dollar&Cent项目 https://github.com/ankurp/Cent/blob/master/So

  • 问题内容: 我有两个Python字典,我想编写一个返回这两个字典合并的单个表达式。该方法将是我需要的,如果它返回了结果而不是就地修改。 我怎样才能在最终的合并字典,不是? (更清楚地说,我正在寻找的最后一个胜出的冲突处理方法也是如此。) 问题答案: 对于字典和,变成了浅层合并的字典,带有替换的值。 在Python 3.5或更高版本中: 在Python 2(或3.4或更低版本)中,编写一个函数: 现

  • 我有一个字典数组,它是这样设置的: 如果我打印tableViewData,它如下所示: 我想让它看起来像这样: