0
此代码用于按字母组合一个字符串数组。将两个循环合并为一个
//plain array
var list = ["apple", "apricot", "banana", "blackberry"]
//dictionary of arrays
var dict = Dictionary<String, Array<String>>()
//create necessary keys from first characters
for word in list {
dict[ String(word.characters.prefix(1)) ] = [ ]
}
//add words to the key of their first character
for word in list {
dict[ String(word.characters.prefix(1)) ]?.append(word)
}
//output dictionary
print(dict)
此示例将输出词典这样的:
[ "b": ["ba", "bb"],
"a": ["aa", "ab"] ]
的代码有两个类似for
环路。它们可以组合成一个单一的环路而不影响输出吗?
这很有道理。我没有想到'groupBy'。所以这个函数只需要检查在添加元素之前是否已经创建了该键。 –
是否可以保存密钥的顺序? –
词典没有顺序。获取密钥列表,对它们进行排序,然后按照该顺序遍历字典 –