gpt4 book ai didi

linux - 在 Perl 中查找列表中缺失的数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:21 27 4
gpt4 key购买 nike

例如,给定(1、2、5、6、7),我想确定缺少3和4?

我发现以下代码可以实现我的目标。

#!/usr/bin/perl
use Data::Dumper;
@list= (1,2,5,6,7);
@missing = map $list[$_-1]+1..$list[$_]-1, 1..@list-1;
print Dumper(\@missing);

输出:

$VAR1 = [
3,
4
];

谁能解释一下上面代码背后的逻辑?

最佳答案

map EXPR,LIST

Evaluates the BLOCK or EXPR for each element of LIST (locally setting $_ to each element) and returns the list value composed of the results of each such evaluation.

在你的情况下:

map $list[$_-1]+1..$list[$_]-1, 1..@list-1;

LIST: 1..@list-1: 是一个列表,其中包含从 1 到 4 的元素(数组长度为 1)

EXPR: $list[$_-1]+1..$list[$_]-1: 使用上面的索引(1 到 4)并使用范围运算符计算表达式。

在下面的每次迭代中发生:

$list[1-1]+1..$list[1]-1: 1+1..2-1 = ''
$list[2-1]+1..$list[2]-1: 2+1..5-1 = 34
$list[3-1]+1..$list[3]-1: 5+1..6-1 = ''
$list[4-1]+1..$list[4]-1: 6+1..7-1 = ''

关于linux - 在 Perl 中查找列表中缺失的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39286461/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com