Swift程序合并两个字典


为了合并两个字典的内容,Swift提供了一个名为merging(_:uniqueKeysWith:)的预定义函数。此函数通过合并两个字典的元素来创建一个新字典。它还使用一个组合闭包来检查重复键的值。

语法

func merging(otherDict){comClosure} 

此函数接受两个参数,它们是:

  • OtherDict − 要合并的字典。

  • comClosure − 一个闭包,它接收重复键的当前值和新值,然后返回输出字典所需的数值。这是一个可选参数,这意味着如果您不想自定义合并函数,可以删除此参数。

算法

  • 步骤 1 − 创建两个带有键值对的字典。

  • 步骤 2 − 打印原始字典。

  • 步骤 3 − 现在使用merging()函数合并给定字典的元素,并将结果存储在新字典中。

  • 步骤 4 − 打印结果字典。

示例 1

在下面的Swift程序中,我们将合并两个字典。所以首先我们创建两个相同数据类型的字典。然后我们将使用merging()函数合并它们。在这个函数中,我们传递两个参数,一个是第二个字典,一个是闭包。闭包有两个参数“_”和“new”,其中“_”表示通配符,这意味着nDict中已经存在的值对于两个字典中都存在的任何键,我们只需在闭包中忽略它,而new参数表示“mDict”中任何键存在于两个字典中的值,我们将其返回以覆盖nDict中的值。最后打印结果字典。

import Foundation
import Glibc

let nDict = ["x": 234, "y": 221, "z": 922]
let mDict = ["p": 12, "q": 182, "r": 2781]

print("Original Dictionaries:")
print("Dictionary 1: ", nDict)
print("Dictionary 2: ", mDict)

// Merging two dictionaries
let mergeDict = nDict.merging(mDict) { (_, new) in new }

print("\nMerged Dictionary:", mergeDict)

输出

Original Dictionaries:
Dictionary 1:  ["x": 234, "z": 922, "y": 221]
Dictionary 2:  ["p": 12, "q": 182, "r": 2781]

Merged Dictionary: ["z": 922, "y": 221, "p": 12, "x": 234, "q": 182, "r": 2781]

示例 2

在下面的Swift程序中,我们将合并两个字典。所以我们将创建两个相同数据类型的字典。然后我们使用merging()函数合并它们。这里两个字典都有一些重复的键。所以在merging()函数中,我们传递两个参数mDict和闭包。在闭包中,我们传递两个参数current和new,它将返回new,这意味着对于nDict和mDict中都存在的任何键,来自mDict的值将覆盖nDict中的值。最后显示结果字典。

import Foundation
import Glibc

let nDict = [1: "dd", 2: "pp", 3: "ww"]
let mDict = [1: "oo", 8: "ee", 2: "tt"]

print("Original Dictionaries:")
print("Dictionary 1: ", nDict)
print("Dictionary 2: ", mDict)

// Merging two dictionaries
let mergeDict = nDict.merging(mDict) { (current, new) in new }

print("\nMerged Dictionary:", mergeDict)

输出

Original Dictionaries:
Dictionary 1:  [1: "dd", 2: "pp", 3: "ww"]
Dictionary 2:  [2: "tt", 1: "oo", 8: "ee"]
Merged Dictionary: [8: "ee", 3: "ww", 2: "tt", 1: "oo"]

结论

因此,这就是我们如何使用merging()函数合并两个字典的方法。此函数接受两个参数并返回一个新字典,其中包含来自两个给定字典的键值对。它适用于包含唯一键值对的字典以及包含一些重复键的字典。

更新于: 2023年5月9日

1K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告