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

arrays – Perl:搜索数组中的项目

发布时间:2020-12-16 06:10:35 所属栏目:大数据 来源:网络整理
导读:给定一个数组@A,我们想检查元素$B是否在其中.一种方法是这样说: Foreach $element (@A){ if($element eq $B){ print "$B is in array A"; }} 然而,当它到达Perl时,我总是在思考最优雅的方式.这就是我的想法: 如果我们将A转换为变量字符串并使用,有没有办法
给定一个数组@A,我们想检查元素$B是否在其中.一种方法是这样说:

Foreach $element (@A){
    if($element eq $B){
        print "$B is in array A";
    }
}

然而,当它到达Perl时,我总是在思考最优雅的方式.这就是我的想法:
如果我们将A转换为变量字符串并使用,有没有办法找出数组A是否包含B.

index(@A,$B)=>0

那可能吗?

解决方法

有很多方法可以确定元素是否存在于数组中:

>使用foreach

foreach my $element (@a) {
    if($element eq $b) {
       # do something             
       last;
    }
}

>使用Grep:

my $found = grep { $_ eq $b } @a;

>使用List::Util模块

use List::Util qw(first); 

my $found = first { $_ eq $b } @a;

>使用由Slice初始化的哈希

my %check;
@check{@a} = ();

my $found = exists $check{$b};

>使用由地图初始化的哈希

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

my $found = $check{$b};

(编辑:李大同)

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

    推荐文章
      热点阅读