Raku kurss / Pielikums 🆕 / Darbs ar datiem / Saraksti, masīvi un jaucējtabulas / Exercises / Apvienojiet divus krājumus
Risinājums: Apvienojiet divus krājumus
Šeit ir iespējams risinājums uzdevumam.
Kods
my %shop-a = apples => 3, pears => 2;
my %shop-b = apples => 4, plums => 5;
my %total;
for %shop-a, %shop-b -> %shop {
%total{$_} += %shop{$_} for %shop.keys;
}
say %total.sort.map({ "{.key}: {.value}" }).join(', ');🦋 Atrodiet programmu failā merge-inventories.raku.
Izvade
apples: 7, pears: 2, plums: 5Komentāri
Ciklojot pa abām jaucējtabulām un darot
%total{$_} += ..., katrs daudzums tiek pieskaitīts kopsummai neatkarīgi no tā, vai atslēga jau ir redzēta, — trūkstoša atslēga sākas ar nulli.%total.sortsakārto pārus pēc atslēgas, un.mapkatru noformē kāatslēga: vērtība, pirms tie tiek savienoti.