Как найти максимальное значение в словаре 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)

и получить максимальное значение по значениям, но вы можете изменить, как вам нравится использовать его над ключами, это зависит от вас.

Я надеюсь, что это помочь тебе.