簡體   English   中英

如何從數組中生成swift中的字典

[英]How to generate a dictionary in swift from an array

var tempsArray = [65,62,63,64,67,68,69,68,67,65,63,65,65]

func createCoordinates(temps: [Int]) -> Dictionary<Int, Int> {
    var tempCoordinates = [Int: Int]()

    for temperature in temps {
        tempCoordinates[temperature] = temps[temperature]
    }

    return tempCoordinates
}

createCoordinates(tempsArray)

目標是一個函數,它將Int數組作為唯一參數並返回坐標字典。 在這種情況下,目標是(0:65,1:62,2:63,......)

我的代碼沒有執行,並且給我一個“數組索引超出范圍”的錯誤

使用enumerate()很容易實現:

let tempsArray = [65,62,63,64,67,68,69,68,67,65,63,65,65]

var dict = [Int:Int]()
for (index, value) in tempsArray.enumerate() {
    dict[index] = value
}

print(dict)

結果:

[12:65,10:63,5:68,7:68,0:65,11:65,3:64,2:63,4:67,9:65,6:69,8:67,1 :62]

請記住,詞典是無序的集合。

我相信你很容易根據自己的需要調整這個簡單的例子。 如果沒有,告訴我你被困在哪里,我會幫忙。

更簡單的形式:

tempsArray.reduce([Int:Int]()) {
    (var d, v)->[Int:Int] in
    d[d.count] = v
    return d
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM