首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除Perl数组的元素

问删除Perl数组的元素
EN

Stack Overflow用户
提问于 2012-03-09 09:11:55
回答 3查看 6.4K关注 0票数 1

有没有一种简单的方法可以删除Perl数组中的n个连续元素(从而缩短它的长度)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-09 09:17:40

您正在寻找Perl内置函数splice,它允许您选择一个起点、要删除的元素数量和一个可选的替换列表。

代码语言:javascript
复制
my @array = 0 .. 9;

my @slice = splice @array, 3, 3;

say "@slice";   # prints "3 4 5"
say "@array";   # prints "0 1 2 6 7 8 9"
say 0 + @array; # prints 7
票数 15
EN

Stack Overflow用户

发布于 2012-03-09 09:18:49

您可以使用splice删除数组元素。

票数 3
EN

Stack Overflow用户

发布于 2012-03-09 09:26:04

正如其他答案所指出的,splice是有效的。作为另一种方法(毕竟是TIMTOWTDI),如果您有要删除的n连续元素的上下级索引,那么可以通过grep和数组切片来完成。例如:

代码语言:javascript
复制
use strict;
use warnings;

my @a=("a".."z");

#We will remove the letters "e" through "u"
my $lower=4;
my $upper=20;
print "$_\n" foreach(@a[grep{$_<$lower or $_>$upper}0..$#a]);

输出为:

代码语言:javascript
复制
a
b
c
d
v
w
x
y
z
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9627594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档