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'。所以這個函數只需要檢查在添加元素之前是否已經創建了該鍵。 –
是否可以保存密鑰的順序? –
詞典沒有順序。獲取密鑰列表,對它們進行排序,然後按照該順序遍歷字典 –