gpt4 book ai didi

perl - 如何删除等于perl中第二个数组中某个元素的数组元素

转载 作者:行者123 更新时间:2023-12-04 02:10:40 28 4
gpt4 key购买 nike

只是想知道是否给了我两个数组 A 和 B,如何删除/删除 A 中也可以在 B 中找到的那些元素?这样做的最有效方法是什么?

而且,作为一种特殊情况,如果 B 是 grep 之后的结果数组关于A,这怎么办?当然,在这种情况下,我们可以做一个 grep在否定条件下。但是在 perl 中是否有一些类似于对另一个数组取一个数组的补充?

谢谢你。

最佳答案

任何时候想到found in你可能正在寻找一个哈希。在这种情况下,您将创建 B 值的散列。然后你会 grep A,检查每个元素的哈希值。

my @A = 1..9;
my @B = (2, 4, 6, 8);
my %B = map {$_ => 1} @B;

say join ' ' => grep {not $B{$_}} @A; # 1 3 5 7 9

如您所见,perl 通常不维护任何类型的 found in table 本身,
所以你必须提供一个。上面的代码很容易被包装成一个函数,但为了效率,最好是内联的。

关于perl - 如何删除等于perl中第二个数组中某个元素的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522388/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com