比如 @A = qw(1 2 3 4 5 );
@B = qw(1 2 3);
如何求@C = qw(4 5);
求指教
在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?
-
- 帖子: 126
- 注册时间: 2012-04-06 15:55
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?
▶ 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' 的别名
Smartmatch is experimental at -e line 1.
456
▶ type pl
pl 是 `perl -e' 的别名
● 鸣学
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?
▶ 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' 的别名
Smartmatch is experimental at -e line 1.
456
▶ type pl
pl 是 `perl -e' 的别名
● 鸣学
-
- 帖子: 7
- 注册时间: 2014-04-20 13:38
- 系统: fedora
Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?
感觉好简单地样子。。。但是我写不出来,哭。。。。
-
- 帖子: 1
- 注册时间: 2014-11-16 23:02
Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?
代码: 全选
perl -e '@A = qw(1 2 3 4 5 );@B = qw(1 2 3);@C = grep {not $_ ~~ @B} @A; print join ",",@C'