我保证有一个具有奇数个元素的可变长度数组。第一个元素将始终被忽略。之后每个元素都需要分成两个相应的数组。例如: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