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

Python/PHP/Perl 开发与设计
回复
zuiqiangzhe
帖子: 126
注册时间: 2012-04-06 15:55
送出感谢: 2 次
接收感谢: 0

在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
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

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
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

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
送出感谢: 0
接收感谢: 0

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

#4

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

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

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'
回复

回到 “Python/Php/Perl”