J'ai une liste de listes à deux éléments, comme ce que vous obtiendrez par exemple (1..5) Z (20..24)
, que je veux transformer en hachage (dans cet exemple, ce que vous obtenez {1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 =>24}
. Je pourrais le faire "à la main", mais ce n'est pas pas trop élégant, et je suis sûr que Raku a une façon idiomatique de le faire. L'alternative inélégante que je propose est:
my @a = (1..5) Z (20..24);
my %a;
for @a -> @x {
%a{@x[0]} = @x[1];
flat
devrait fonctionner.flat
aplatira plusieurs niveaux d'une structure de données à plusieurs niveaux si les niveaux sontList
s. Mais si vous avez déjà introduit des non-List
s, par exemple en affectant les données à unArray
sans les utiliserflat
avant de le faire, alorsflat
ce ne sera plus le bon outil. Par exemple, si vous l'avez attribué en utilisantmy @a = 1..5 Z 20..25;
alorsflat
seul ne fera pas le travail. Je voudrais l'aplatir comme çamy %h = @a[*;*];
. J'ai écrit un peu plus sur l'utilisation des indices pour aplatir les données à plusieurs niveaux ici .((1, (1, 2, 3)), (2, (5, 6)), (17, (3, 4, 5, 92, 31))
(par exemple, le résultat final serait un hachage avec des listes en tant que valeurs)?