perl 删除数组元素的几种方法小结
发布时间:2023-07-14 18:31:11
1. 用grep函数
函数名 grep
调用语法 @foundlist = grep (pattern, @searchlist);
解说 与同名的UNIX查找工具类似,grep函数在列表中抽取与指定模式匹配的元素,参数pattern为欲查找的模式,返回值是匹配元素的列表。
例子 @list = ("This", "is", "a", "test");
@foundlist = grep(/^[tT]/, @list);
结果 @foundlist = ("This", "test");
2. 用map函数
函数名 map
调用语法 @resultlist = map (expr, @list);
解说 此函数在Perl5中定义,可以把列表中的各个元素作为表达式expr的操作数进行运算,其本身不改变,结果作为返回值。在表达式expr中,系统变量$_代表各个元素。
例子
1、@list = (100, 200, 300);
@results = map ($_+1, @list);
2、@results = map (&mysub($_), @list);
结果 1、(101, 201, 301)
2、无
3. 用splice或者delete
函数名 splice
调用语法 @retval = splice (@array, slipelements, length, @newlist);
解说:拼接函数可以向列表(数组)中间插入元素、删除子列表或替换子列表。参数skipelements是拼接前跳过的元素数目,length是被替换的元素数,newlist是将要拼接进来的列表。当newlist的长度大于length时,后面的元素自动后移,反之则向前缩进。因此,当length=0 时,就相当于向列表中插入元素,而形如语句
splice (@array, -1, 0, "Hello");
则向数组末尾添加元素。而当newlist为空时就相当于删除子列表,这时,如果length为空,就从第skipelements个元素后全部删除,而删除最后一个元素则为:splice (@array, -1);这种情况下,返回值为被删去的元素列表。
两者都可以按照index直接删除array或者hash的元素。但是delete删除元素后, index后面的元素并不会主动往前移动,该元素删除后,在array还留有一个undef的元素,显然删除得不够干净。


猜你喜欢
- Vuex 作为一个老牌 Vue 状态管理库,大家都很熟悉了Pinia 是 Vue.js 团队成员专门为 Vue 开发的一个全新的状态管理库,
- 说起交叉熵损失函数「Cross Entropy Loss」,脑海中立马浮现出它的公式:我们已经对这个交叉熵函数非常熟悉,大多数情况下都是直接
- 1.若有疑问立即检测 在出错时若能对原始代码做简单检测可以省去很多头痛问题。W3C对于XHTML与CSS 都有检测工具可用,请见 http:
- XHTML结构: <div id="myFocus-wrap"> <div id="myFo
- 1.定义aiohttp 是一个基于 asyncio 的异步 HTTP 网络模块,它既提供了服务端,又提供了客户端2.基本使用import a
- Python输入整数进行排序任务:自定需要排序数字的个数,对这些数字进行排序"""功能: 输入整数进行排序作者
- 问题描述我是debain 系的linux系统没遇到这个问题,在centos系统遇到的Collecting dlib Downlo
- 旋转椭圆实例代码:import matplotlib.pyplot as pltimport numpy as npfrom matplot
- 本文实例讲述了Python OS模块。分享给大家供大家参考,具体如下:os模块在自动化测试中,经常需要查找操作文件,比如查找配置文件(从而读
- 前言其实全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文。缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格
- 本文介绍了Scrapy项目实战之爬取某社区用户详情,分享给大家,具有如下:get_cookies.pyfrom selenium impor
- 所谓贪婪匹配就是匹配重复字符是尽可能多的匹配,比如:"aaaaa".match(/a+/); //["aaaa
- 我们小组讨论的话题是tab(标签)在使用时的禁忌。在讨论的开始,大家很快产生了六个感兴趣的话题:如何处理海量的tab?在浏览器中关掉tab之
- python 远程统计文件#!/usr/bin/python#encoding=utf-8import timeimport osimpor
- 本文实例讲述了基于python编写的微博应用,分享给大家供大家参考。具体如下:在编写自己的微博应用之前,先要到weibo开放平台申请应用的公
- 1. 引言元组是Python中一种重要的内置数据类型。与列表一样,我们经常使用元组将多个对象保存为相应的数据容器。然而,与列表不同的是元组的
- Mysql数据库表定期备份的实现0.背景实际开发环境中,前端程序需要在给定时间段内,将数据更新/插入到MySQL指定的库表中。随着数据量的增
- 本篇内容介绍了Python编程语言的优势和不足。首先我们来了解什么是Python?Python是一种面向对象的高级编程语言,具有集成的动态语
- 在图片处理中,霍夫变换主要是用来检测图片中的几何形状,包括直线、圆、椭圆等。在skimage中,霍夫变换是放在tranform模块内,本篇主
- char、varchar、text和nchar、nvarchar、ntext的区别1、CHAR。CHAR存储定长数据很方便,CHAR字段上的