Курс Raku / Додаток 🆕 / Робота з даними / Списки, масиви та хеші / Вправи / Найчастіший елемент
Розв’язання: Найчастіший елемент
Ось одне з можливих розв’язань задачі.
Код
my @values = <a b a c a b>;
my %count;
%count{$_}++ for @values;
say %count.sort(-*.value)[0].key;🦋 Знайдіть програму у файлі most-common.raku.
Вивід
aКоментарі
Після підрахунку кожного значення в
%countсортування пар за-*.valueставить найчастішу попереду;[0].keyтоді повертає цей елемент.Raku може порахувати це за вас за допомогою
Bag, що рахує, скільки разів трапляється кожне значення. Тоді.max(*.value)обирає пару з найбільшою кількістю, а.keyє самим елементом:my @values = <a b a c a b>; say @values.Bag.max(*.value).key; # a
Увесь підрахунок є одним викликом методу, і жодним явним хешем керувати не доводиться.