Как найти максимальное значение в словаре Swift?
так, скажем, у меня есть словарь, который выглядит так:
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]
как программно найти наибольшее значение в словаре? Есть ли "данные".команда Макса или что?
3 ответов
let maximum = data.reduce(0.0) { max(, .1) }
просто быстрый способ, используя reduce
.
или:
data.values.max()
выход:
print(maximum) // 5.828
словарь Swift предоставляет метод max (by:). Пример из Яблоко следующим образом:
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))"
существует функция в API с именем maxElement
вы можете использовать его очень легко , которая возвращает максимальный элемент в 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 { .1 < .1} // (.0 8, .1 5.828)
и получить максимальное значение по значениям, но вы можете изменить, как вам нравится использовать его над ключами, это зависит от вас.
Я надеюсь, что это помочь тебе.