我想使用 perl 根据我的第一个列表中唯一值的索引值从第二个列表中获取相应的值。
例如:
@list1=('a','b','c','a','d');
@list2=('e','f','g','a','i');
我想创建两个没有重复值的新列表
@new_list1=('a','b','c','d');
@new_list2=('e','f','g','i');
我怎样才能做到这一点?
要从一个列表中获取唯一值,我可以使用:
my %temp_hash = map { $_, 0 } @list1;
my @uniq_array = keys %temp_hash;
print "@uniq_array\n";
但是如何从另一个列表中获取相应索引处的值。
提前致谢。
编辑:它应该根据某些条件而不是第一次出现找到唯一值。例如:
@list1=('a','b','c','a','d');
@list2=('e','f','g','a','i');
和
@list1=('a','b','c','a','d');
@list2=('a','f','g','e','i');
应该给出相同的值:
@new_list1=('a','b','c','d');
@new_list2=('e','f','g','i');
在给定的示例中,条件可能是不包括两个列表的值相同的公共元素。即有两次出现'a'第一次'a'对应于'e',第二个'a'对应于'a'。所以要删除第二个而不是第一个。