Курс Raku / Додаток 🆕 / Робота з даними / Списки, масиви та хеші / Вправи / Найчастіший елемент

Розв’язання: Найчастіший елемент

Ось одне з можливих розв’язань задачі.

Код

my @values = <a b a c a b>;

my %count;
%count{$_}++ for @values;

say %count.sort(-*.value)[0].key;

🦋 Знайдіть програму у файлі most-common.raku.

Вивід

a

Коментарі

  1. Після підрахунку кожного значення в %count сортування пар за -*.value ставить найчастішу попереду; [0].key тоді повертає цей елемент.

  2. Raku може порахувати це за вас за допомогою Bag, що рахує, скільки разів трапляється кожне значення. Тоді .max(*.value) обирає пару з найбільшою кількістю, а .key є самим елементом:

    my @values = <a b a c a b>;
    
    say @values.Bag.max(*.value).key; # a

    Увесь підрахунок є одним викликом методу, і жодним явним хешем керувати не доводиться.

Навігація курсом

Найчастіший елемент   |   З’єднайте два списки в хеш