所以,假设我有一个字典,如下所示:
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]
Run Code Online (Sandbox Code Playgroud)
如何以编程方式在字典中找到最高值?是否有"data.max"命令?
Een*_*dje 20
let maximum = data.reduce(0.0) { max($0, $1.1) }
Run Code Online (Sandbox Code Playgroud)
只是一个快速的方式使用reduce.
要么:
data.values.max()
Run Code Online (Sandbox Code Playgroud)
输出:
print(maximum) // 5.828
Run Code Online (Sandbox Code Playgroud)
Nar*_*ail 12
Swift Dictionary提供了max(by :)方法.Apple的例子如下:
let hues = ["Heliotrope": 296, "Coral": 16, "Aquamarine": 156]
let greatestHue = hues.max { a, b in a.value < b.value }
print(greatestHue)
// Prints "Optional(("Heliotrope", 296))"
Run Code Online (Sandbox Code Playgroud)
API 中存在一个函数,名为maxElementyou can use it very easy ,它返回最大元素,self或者nil如果序列为空,并且在您使用字典的情况下需要严格的弱排序作为闭包。您可以在以下示例中使用 like:
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)
Run Code Online (Sandbox Code Playgroud)
并通过值获得最大值,但是您可以根据自己的喜好在键上使用它进行更改,这取决于您。
我希望这对你有帮助。