我的目标是使用游乐场并显示每月温度(例如,1月高温为30,低温为-2)并且需要使用字符串数组以及具有温度元组值的字典
到目前为止,我有一个字符串数组Months: [String]
,里面有几个月。以及Temperatures: [String, (temp1: Int, temp2: Int)
的字典。我有一个函数SetMonthlyTemp(month: String, temp1: Int, temp2: Int)
,我试图用来设置字典,但我无法弄清楚如何这样做。我对词典完全不熟悉,上周只使用了一个元组,这是一个独立的属性。有关设置此字典以获取元组(Int, Int)
的任何帮助都会很棒!显然会有一个显示方法打印结果,但我没有找到相关信息。
答案 0 :(得分:0)
享受:
var temperatures = [String: (Int, Int)]()
temperatures["Jan"] = (10, 20)
temperatures["Feb"] = (-1, -16)
// setting temp 1 for January (note: "Jan" entry must exist in dictionary)
temperatures["Jan"]?.0 = 30
// setter ;)
func setMonthlyTemp(month: String, temp1: Int, temp2: Int) {
temperatures[month] = (temp1, temp2)
}
访问:
temperatures["Feb"] // whole tuple for February
temperatures["Jan"]?.0 // first temperature for January
temperatures["Feb"]?.1 // second temperature for February
答案 1 :(得分:0)
从我的角度来看,如果您正在使用受约束的数据集,例如月,周,类别的东西,我不知道那么最好使用枚举,这将更好地描述你的数据元组和&串
enum Month {
case january
case february
// ...
case november
case december
static let allMonths = [january, february, /*...*/ november, december]
}
struct MonthlyTemperature {
let month: Month
var lowestTemp: Double?
var highestTemp: Double?
init(month: Month, lowest: Double? = nil, highest: Double? = nil) {
self.month = month
self.lowestTemp = lowest
self.highestTemp = highest
}
}
let temparatures = [MonthlyTemperature]()
// ...
var dict = Dictionary(grouping: temparatures, by: { $0.month })
Month.allMonths.forEach { month in
dict.updateValue(dict[month] ?? [], forKey: month)
}