我保證有一個具有奇數個元素的可變長度數組。第一個元素將始終被忽略。之後每個元素都需要分成兩個相應的數組。例如:Perl中的拆分/映射函數將元素拆分爲單獨的數組
Hello, a, 1, b, 2, c, 3
將導致以下兩個陣列:[a,b,c]
和[1,2,3]
。
我可以以某種方式使用Perl的地圖/分割功能嗎?有沒有漂亮的單線隊員?
我保證有一個具有奇數個元素的可變長度數組。第一個元素將始終被忽略。之後每個元素都需要分成兩個相應的數組。例如:Perl中的拆分/映射函數將元素拆分爲單獨的數組
Hello, a, 1, b, 2, c, 3
將導致以下兩個陣列:[a,b,c]
和[1,2,3]
。
我可以以某種方式使用Perl的地圖/分割功能嗎?有沒有漂亮的單線隊員?
([ map $array[$_*2-1], 1..($#array/2) ],
[ map $array[$_*2], 1..($#array/2) ])
@c = qw(Hello a 1 b 2 c 3);
@a = @c[map $_*2+1, 0 .. @c/2-1], @b = @c[map $_*2, 1 .. $#c/2];
# or
@a = @b =(), push @{$_%2 ? \@a : \@b}, $c[$_] for 1 .. $#c;
perl -E'say"@ARGV[`seq $_ 2 $#ARGV`]"for 1,2' Hello a 1 b 2 c 3
在此尋找它突然發生,我認爲,如果你不關心的順序,你可以濫用哈希創作:
my %hash = @array[1 .. $#array];
(keys %hash, values %hash)
這也讓我不知道如果Perl6 Zip操作符有反轉的話?
你想使用perl的任何特定原因? – Hank 2011-01-10 23:40:26