Jaki jest najlepszy sposób na zdobycie ostatnich N elementów z tablicy Perla?Jaki jest najlepszy sposób na uzyskanie ostatnich elementów N z tablicy Perla?
Jeśli macierz ma mniej niż N, nie chcę, aby w wartości zwracanej była garść undefs
.
Jaki jest najlepszy sposób na zdobycie ostatnich N elementów z tablicy Perla?Jaki jest najlepszy sposób na uzyskanie ostatnich elementów N z tablicy Perla?
Jeśli macierz ma mniej niż N, nie chcę, aby w wartości zwracanej była garść undefs
.
@last_n = @source[-$n..-1];
Jeśli nie wymagają undef
s, a następnie:
@last_n = ($n >= @source) ? @source : @source[-$n..-1];
Myślę, że to, co chcesz, nazywa się slice.
my $size = (scalar @list) - 1;
my @newList = @list[$size-$n..$size];
@a = (a .. z);
@last_five = @a[ $#a - 4 .. $#a ];
say join " ", @last_five;
Wyjścia:
V W X Y Z
proste, bez matematyki:
@a = reverse @a;
@a = splice(@a, 0, $elements_to_keep);
@a = reverse @a;
To nie działa, jeśli @source ma mniej niż $ n elementów. – mike
Działa dobrze. undefs przejdź do @last_n w pozycjach, dla których @source nie ma wartości, co jest poprawne dla niektórych nie całkiem całkowicie nierozsądnych semantyki tego, co znaczy "wziąć ostatnie N elementów". – chaos
oh, nigdy nie użyłem negatywnych indeksów dolnych, nauczyłem się czegoś dzisiaj! – Nathan