arrays - 在 Perl 中通过索引从数组中排除元素的最佳方法是什么?

标签 arrays perl

我使用以下代码在 @{$index} 中的索引处排除 @{$x} 中的元素。但我不确定这是实现此功能的最有效方法。大家有什么更好的办法吗。

sub arrayexclude {
    my $x = shift;
    my $index = shift;

    my @keep_index = (0 .. (scalar(@{$x})-1));

    delete @keep_index[@{$index}];

    my $result=[];

    for my $i (@keep_index) {
        if(defined $i) {
            push @{$result}, @{$x}[$i];
        }
    }
    return $result;
}

最佳答案

除了array slice之外,您不需要任何东西。 ,所以我会避免为此创建一个子项目。

my @wanted = @array[@indices];

如果您正在使用数组引用,则适用相同的方法:

my @wanted = @{$array}[@$indices];

关于arrays - 在 Perl 中通过索引从数组中排除元素的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36002809/

相关文章:

java - ArrayList 和数组多排序

arrays - 如何在 Swift 中扩展类型化数组?

perl - 打包/解包 - little endian - 64 位 - 问题

java - 如何显示用户输入数组中的最大和最小数字?

PHP 与 array_filter 相反?

perl - 是否有用于连接 Google Contacts API 的 Perl 模块?

perl - 为什么有些用户在 Perl 中引用类名?

perl - 调用 perl 匿名子程序,其引用保存在散列中

regex - 从正则表达式组中删除某些字符

c - 如何将 n 长度的数组划分为 k 个大小大致相等的子数组(在 C 中)?