作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以制作一个定型(固定大小)的数组:
my @array[3;3] = (
< 1 2 3 >,
< 4 5 6 >,
< 7 8 9 >
);
say @array; # [[1 2 3] [4 5 6] [7 8 9]]
say @array[1;1]; # 5
my @diagonal = gather {
my @ends = @array.shape.map: { (0 ..^ $^a).List };
for [Z] @ends {
take @array[ $_ ] # how do I make that $_[0];$_[1];...
};
}
最佳答案
How can I slice this to get any particular column or diagonal that I want?
my @array = ( < 1 2 3 >, < 4 5 6 >, < 7 8 9 > );
say @array[1]; # 4 5 6 (second row)
say @array[1;*]; # same
say @array[*;1]; # 2 5 8 (second column)
How do I turn a list of the indices in each dimension into the right thing to put in the square braces?
;
与下一个维片分开。
;
是语句分隔符(在下标内)还是列表列表指示符,还是因为如何以编程方式将索引列表转换为该形式。 (调查在继续。)
And, surely there's some fancy syntax that would keep me from doing something complicated [for a diagonal slice]:
say @array[*;{$++}]; # 1 5 9 (diagonal)
;
数组下标中的第一个由
[...]
分隔的字段对应于数组中的第一个维度,即数组中的行。
*
意味着您要包括所有行,而不是指定特定行。
$++
而不是
{$++}
,但这大概使所有元素的列为零,这是因为语言/烘烤和/或Rakudo每次对
[...]
下标运算符的调用仅评估一次标量索引值。
Callable
来计算叶子切片,并且我注意到
roast'd slicing for "calculated indices"不包括对
Callable
的使用。也许我只是看错了。
关于multidimensional-array - 如何在Perl 6中切片形状数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50361375/
我是一名优秀的程序员,十分优秀!