如何在Perl或Python中仅打印每第三个索引?

6 投票
8 回答
5705 浏览
提问于 2025-04-15 14:32

我想知道在Python和Perl中,怎么用for()或者foreach()循环,只打印每第三个索引的内容?我需要把每第三个索引的值移动到一个新的数组里。

8 个回答

9

Perl:

# The initial array
my @a = (1..100);

# Copy it, every 3rd elements
my @b = @a[ map { 3 * $_ } 0..$#a/3 ];

# Print it. space-delimited
$, = " ";
say @b;
16

Perl:

就像draegtun的回答那样,不过这里用了一个计数变量:

my $i;
my @new = grep {not ++$i % 3} @list;
12

Python

print list[::3] # print it
newlist = list[::3] # copy it

Perl

for ($i = 0; $i < @list; $i += 3) {
    print $list[$i]; # print it
    push @y, $list[$i]; # copy it
}

撰写回答