在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

软件和网站开发以及相关技术探讨
回复
zuiqiangzhe
帖子: 126
注册时间: 2012-04-06 15:55

在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

#1

帖子 zuiqiangzhe » 2014-03-28 10:03

比如 @A = qw(1 2 3 4 5 );
@B = qw(1 2 3);
如何求@C = qw(4 5);
求指教
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

#2

帖子 eexpress » 2014-03-29 21:25

▶ pl '@A = qw(1 2 3 4 5 6); @B = qw(1 2 3); foreach (@A){next if $_ ~~ @B; push @C,$_;}; print @C;'
Smartmatch is experimental at -e line 1.
456

▶ type pl
pl 是 `perl -e' 的别名
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

#3

帖子 eexpress » 2014-03-29 21:26

▶ pl '@A = qw(1 2 3 4 5 6); @B = qw(1 2 3); foreach (@A){next if $_ ~~ @B; push @C,$_;}; print @C;'
Smartmatch is experimental at -e line 1.
456

▶ type pl
pl 是 `perl -e' 的别名
● 鸣学
flfruit
帖子: 7
注册时间: 2014-04-20 13:38
系统: fedora

Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

#4

帖子 flfruit » 2014-04-21 20:55

感觉好简单地样子。。。但是我写不出来,哭。。。。
45177659
帖子: 1
注册时间: 2014-11-16 23:02

Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

#5

帖子 45177659 » 2014-11-16 23:04

代码: 全选

perl -e '@A = qw(1 2 3 4 5 );@B = qw(1 2 3);@C = grep {not $_ ~~ @B} @A; print join ",",@C'
回复