gpt4 book ai didi

perl - 如何从一个 Perl 数组中添加另一个数组中尚未存在的元素?

转载 作者:行者123 更新时间:2023-12-04 02:33:35 26 4
gpt4 key购买 nike

鉴于:

my @mylist1;
push(@mylist1,"A");
push(@mylist1,"B");
push(@mylist1,"C");

my @mylist2;
push(@mylist2,"A");
push(@mylist2,"D");
push(@mylist2,"E");

在 Perl 中将 mylist1 中所有元素插入 mylist2 中而不是 mylist2 (ABCDE) 中的所有元素的最快方法是什么。

最佳答案

my %k;
map { $k{$_} = 1 } @mylist1;
map { $k{$_} = 1 } @mylist2;
@mylist2 = keys %k;

或者:
my %k;
map { $k{$_} = 1 } @mylist2;
push(@mylist2, grep { !exists $k{$_} } @mylist1);

实际上 - 这些可能是错误的,因为它们没有考虑到原始列表中是否可能存在重复项。

你没有在你的问题中说列表是应该代表集合(不能包含重复项)还是只是简单的列表。你真正想要的 @mylist2 = @mylist1 U @mylist2表明您将它们视为集合。

编辑:更改增量分配 - 保存哈希值的读取

关于perl - 如何从一个 Perl 数组中添加另一个数组中尚未存在的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/324498/

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