所以,我说有一个类似的字典:
var data : [Float:Float] = [0:0,1:1,2:1.414,3:2.732,4:2,5:5.236,6:3.469,7:2.693,8:5.828,9:3.201]
我如何以编程方式找到字典中的最高值?是否有" data.max"命令什么的?
答案 0 :(得分:20)
let maximum = data.reduce(0.0) { max($0, $1.1) }
使用reduce
快速方法。
或:
data.values.max()
输出:
print(maximum) // 5.828
答案 1 :(得分:4)
在API中存在一个名为maxElement
的函数,您可以非常轻松地使用它,如果序列为空且需要{self
,则返回nil
或var data : [Float:Float] = [0:0,1:1,2:1.414,3:2.732,4:2,5:5.236,6:3.469,7:2.693,8:5.828,9:3.201]
let element = data.maxElement { $0.1 < $1.1} // (.0 8, .1 5.828)
中的最大元素{3}}在您使用Dictionary时作为闭包。您可以在以下示例中使用like:
file1 file1.c && gcc file2.c -lm -o file2
按值获取最大值,但您可以根据需要更改键,这取决于您。
我希望这对你有所帮助。
答案 2 :(得分:1)
老实说,上面提到的解决方案可以工作,但是作为新手,对于我来说似乎还不清楚,因此这是我使用 SWIFT 5.3 在字典中找到最大值的解决方案在 Xcode 12.0.1 中:
var someDictionary = ["One": 41, "Two": 17, "Three": 23]
func maxValue() {
let maxValueOfSomeDictionary = someDictionary.max { a, b in a.value < b.value }
print(maxValueOfSomeDictionary!.value)
}
maxValue()
在点符号(意思是“。”)之后,将 max 和 {} 中的代码(大括号)进行比较字典的组成部分。
答案 3 :(得分:0)
有两种方法可以在字典中找到最大值。
第一种方法:
data.values.max
第二种方法:
data.max { $0.value < $1.value}?.value
如果要查找最大密钥:
data.max { $0.key < $1.key}?.key