加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl删除两个列表中都包含的元素

发布时间:2020-12-15 20:59:40 所属栏目:大数据 来源:网络整理
导读:? ?? 在上午工作的时候遇到一个问题,有两个列表A和B,分别都是无重复元素的列表。B中的元素A中有可能也包含,现在需要把A,B两个列表都包含的元素从A中删除。查看了一下手册,没有直接这样的函数或者方法,而且perl的列表操作这块提供库函数没有Erlang那么

? ??在上午工作的时候遇到一个问题,有两个列表A和B,分别都是无重复元素的列表。B中的元素A中有可能也包含,现在需要把A,B两个列表都包含的元素从A中删除。查看了一下手册,没有直接这样的函数或者方法,而且perl的列表操作这块提供库函数没有Erlang那么多,这就需要我们自己想办法。

最后的想到一个简单可靠的办法,先由A构建一个散列,利用散列key的唯一性,然后在通过 delete %hash{key} (key为B的元素)把有可能共同包含的元素删除,最后再由keys函数生成满足要求的列表。
我这边的一种实现方法:
?
 
 
  1. my?%hash;?
  2. ????grep(!$hash{$_}++,?@A);?
  3. ????while(<@B>){?
  4. ????#?包含就删除,不包含就不处理?
  5. ????????delete?$hash{$_};?
  6. ????}?
  7. ????#?@A现在就是可以删除的玩家id列表?
  8. ????@A?=?keys?%hash;?
? 网络上还有很多方案,千奇百怪都有。通过这个实际问题,我看到perl解决问题思想就是“可以通过很多方法解决同一个问题”。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读