Vraag Hoe kan ik herhaalde waarden toevoegen aan een array in Perl?


Ik heb een array @genotypes = "TT AG TT AG...." en wil een piek eraan toevoegen (bijvoorbeeld 20 x TT) om een ​​nieuwe array te maken.

Dat kan ik natuurlijk push "TT" in de array 20 keer - maar is er een eenvoudiger manier om dit te doen? (dat wil zeggen niet @newarray = push @genotypes ("TT", "TT", "TT",......20 times!);


20
2017-10-05 14:06


oorsprong


antwoorden:


@newlist = (@genotypes, ('TT') x 20);

Ja, het is een x.

Zien Multiplicatieve operators in perldoc perlop.


35
2017-10-05 14:10



De herhalingsoperator is de meest voor de hand liggende manier.
Je zou ook kunnen gebruiken map:

@newarray = (@genotypes, map 'TT', 1..20);

4
2017-10-05 14:28



Er is ook de foreach manier om meerdere identieke waarden naar een array te duwen:

push @newarray, 'TT' foreach (1..20);

3
2017-10-05 14:39