[英]How do I sort an array of dictionary according to an array contents in Swift
[英]How can I sort an array into a dictionary?
假设我有一个包含多个国家名称的数组,例如“澳大利亚,丹麦,英国,奥地利,澳大利亚,丹麦”,其中一些国家名称出现了两次。
如何将它们分类以根据国家/地区名称形成字典。 因此,它们的键将是国家名称,而元素将是国家。
如果我在数组中有两个相同的国家,则关键将是该国家,要素将是这两个国家。
我需要它,以便如果添加另一个国家/地区,它将为该国家/地区创建密钥,而无需事先指定密钥。
每个国家/地区都必须位于其国家/地区的键之下,而不取决于阵列中该国家/地区的出现情况。
我想我已经为它制定了一个基本算法,但是我似乎无法将其付诸实践。
该算法正确还是至少朝正确方向迈出了一步?
谢谢您的帮助。
编辑:我们有一个包含国家名称“澳大利亚,丹麦,英国,奥地利,澳大利亚,丹麦”的数组
我需要将其组织成一个基于国家/地区的字典,因为数组中有两个国家/地区丹麦,所以我需要对其进行排序,如下所示:
Denmark: "Denmark", "Denmark"
关键是国家名称,元素是字符串。
英国仅出现一次,因此字典的一部分将如下所示:
United Kingdom: "United Kingdom"
我希望我有更多的道理。
不知道这是否是您的意思。 不太清楚。
var dict = [String: [String]]()
let countries = ["Holland", "England", "France", "Belgium", "England"]
for country in countries {
dict[country] = (dict[country] ?? []) + [country]
}
for (key, value) in dict {
println("KEY: \(key) & VALUE: \(value)")
}
输出:
KEY: England & VALUE: [England, England]
KEY: Belgium & VALUE: [Belgium]
KEY: Holland & VALUE: [Holland]
KEY: France & VALUE: [France]
编辑:
根据Martin R在他的评论中的链接进行了简化。
最简单的方法是仅遍历数组并检查键是否存在于字典中。 使字典的每个值成为NSMutableArray。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.