首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Perl中从多维数组中收集子数组

在Perl中从多维数组中收集子数组
EN

Stack Overflow用户
提问于 2012-09-13 01:44:40
回答 3查看 2.5K关注 0票数 1

假设我构建了以下多维数组:

代码语言:javascript
复制
my @array;  # don't need the empty list
my @other_array = (0 ... 10);

foreach my $i ( 0 .. 10 ) {
$array[$i] = [ @other_array[1..$#other_array] ];
}

我想将这个多维数组的“列”收集到一个单独的数组中,

例如,如果我想要收集第一列中的项,我希望如下所示

代码语言:javascript
复制
my @other_array = ();
@other_array = $array[:][1]; # This does NOT work in Perl

在Perl中有没有一种不用循环就能做到这一点的方法?

最终,我想要做的是获得多维数组中每一列的max数组。

PS:这个问题的灵感来自于另一个问题:Building and printing a multidimensional list in Perl without looping

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-13 01:48:09

我认为你想要:

代码语言:javascript
复制
my @other_array = map { $_->[1] } @array;

另一种语言可能具有用于此操作的特殊语法,但它仍将在幕后执行循环。

票数 5
EN

Stack Overflow用户

发布于 2012-09-13 01:48:41

map为好友

代码语言:javascript
复制
my @other_array = map $array[$_][1], 0 .. $#array;

Slices section in perldoc perllol有更多的例子。

票数 4
EN

Stack Overflow用户

发布于 2012-09-13 03:06:47

对于您的示例,这可能是一个夸张的解决方案,但假设您计划使用大型多维数组(矩阵)来执行此操作,请使用PDL并执行transpose,然后切出所需的行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12393641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档