Perl 数组 交集,补集,并集


my @a=("a","b","c","d","e");
my @b=("b","g","f","e");

my %a=map{$_=>1} @a;
my %b=map{$_=>1} @b;

# 交集
@A = grep( $a{$_}, @b ) ;

# 补集
@B1=grep(!defined $a{$_}, @b);
@B2=grep(!defined $b{$_}, @a);

# 并集
%C=map {$_=>1} @a,@b;
@C=keys %C;

Perl 数组 交集,补集,并集

时间: 2024-10-05 00:03:53

Perl 数组 交集,补集,并集的相关文章

java中求两个数组(集合)的交集,并集,差集

对于两个数组 arr1=[1,3,4,5,8,9] arr2=[2,3,7,8,9] 求出交集与并集 test.java 1 import java.util.ArrayList; 2 import java.util.Collections; 3 4 5 public class test1 { 6 public static void main(String[] args) { 7 ArrayList<Integer> tmplist=new ArrayList<Integer>

用Java求字符串数组的的交集和并集

package com.array; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Map.Entry; public class StringArray { pu

Python 集合set()添加删除、交集、并集、集合操作详解

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 创建集合set python set类是在python的sets模块中,大家现在使用的python2.7.x中,不需要导入sets模块可以直接创建集合.>>>set('boy')set(['y', 'b', 'o']) 集合添加.删除 python 集合的添加有两种常用方法,分别是add

Python 集合set添加删除、交集、并集、集合操作符号

在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 1.创建集合 set类是在python的sets模块中,大家现在使用的python2.3中,不需要导入sets模块可以直接创建集合.>>>set('boy')set(['y', 'b', 'o']) 2.集合添加.删除 集合的添加有两种常用方法,分别是add和update.集合add方法:是把要

perl数组的长度与元素个数

perl数组的长度与元素个数 $#数组名 ---表示数组中最后一个元素的下标,它等于元素个数减1. @数组名 ---表示数组中元素的个数. $标量[email protected]数组名 ---将一个数组赋值给一个标量变量,标量得到的是这个数组的元素个数. $数组名[数组下标]---这种格式可以取出数 $#数组名            ---表示数组中最后一个元素的下标,它等于元素个数减1.@数组名             ---表示数组中元素的个数.$标量[email protected]数组

oracle 交集和并集

今天研究了一下oracle 交集和并集,下面把我经过查找资料,测试后,整理如下: 1.并集 表1: insert into student1 values(1,'学生1'); insert into student1 values(1,'学生2'); insert into student1 values(1,'学生3'); 表2: insert into student2 values(1,'学生1'); insert into student2 values(1,'学生4'); insert

python两个 list 获取交集,并集,差集的方法

有时候,为了需求,需要统计两个 list 之间的交集,并集,差集.查询了一些资料,现在总结在下面:1. 获取两个list 的交集 #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for val in a if val in b] print tmp #[2, 5] #方法二 print list(set(a).intersection(set(b))) 2. 获取两个list 的并集 print list(set(a).union(set(b))) 3. 获取两个

Javascript 获取两个数组交集(重复)的项列表,支持List&lt;object&gt;

(function( window ){ var Utils = { //TODO 判断两个JSON是否相等 equals : function( param ,param2){ return JSON.stringify(param) === JSON.stringify(param2); }, //TODO 获取当前项在数组出现的个数 getCountByItem : function( objects,item){ var count = 0; for(var i = 0;i < obje

快速求两个数组交集算法

快速求出两个数组的交集的算法,如果用循环遍历的方法,其时间复杂度为O(N^N),在面试中一般不考虑这种方法. 这里提供一种快速算法,算法实现步骤如下: 1. 找到arr1的最大数max,创建一个max+1大小的数组result. 2. 以arr1中的值作为result的下标,该索引处的值+1. 3. 在result数组中遍历arr2中的值为下标处的值,如果该索引值不为0,则代表该值是两者的交集,保留. 程序实现如下: /** * 求两个数组的交集 * @param arr1 * @param a