Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中将两个dict转换为一个dict作为键值对_Ios_Swift_Dictionary - Fatal编程技术网

Ios 在Swift中将两个dict转换为一个dict作为键值对

Ios 在Swift中将两个dict转换为一个dict作为键值对,ios,swift,dictionary,Ios,Swift,Dictionary,假设我有两本字典: dictA=[1:7,2:3,3:4]和dictB=[1:Car,2:Banana,3:Apple] 如何制作这样一本新词典:dictAB=[Car:7,Banana:3,Apple:4] 如您所见,我想创建一个新的字典,其中对于两个字典中的同一个键,将从两个初始值中生成一个新的键值对,因此字典中的键某种程度上被用作索引 谢谢你的帮助。:) 您可以尝试: let dictAB = Dictionary(uniqueKeysWithValues: dictB.map { ($0

假设我有两本字典:
dictA=[1:7,2:3,3:4]
dictB=[1:Car,2:Banana,3:Apple]

如何制作这样一本新词典:
dictAB=[Car:7,Banana:3,Apple:4]

如您所见,我想创建一个新的字典,其中对于两个字典中的同一个键,将从两个初始值中生成一个新的键值对,因此字典中的键某种程度上被用作索引

谢谢你的帮助。:)

您可以尝试:

let dictAB = Dictionary(uniqueKeysWithValues: dictB.map { ($0.value, dictA[$0.key]) })

首先,确定两个词典共有的键集。然后,使用这些键组合新词典:

let dictA = [1 : 7, 2 : 3, 3 : 4]
let dictB = [1 : "Car", 2: "Banana", 3: "Apple"]
let dictAB = ["Car": 7, "Banana": 3, "Apple": 4]

let commonKeys = Set(dictA.keys).intersection(dictB.keys)
let temp = commonKeys.map { (dictB[$0]!, dictA[$0]!) }
let result = Dictionary(temp, uniquingKeysWith: {v1, v2 in v2} )

print(result) // ["Banana": 3, "Apple": 4, "Car": 7]
print(result == dictAB) // true

你一定试过什么?请分享你迄今为止的努力。