当前位置:  开发笔记 > 编程语言 > 正文

Perl中的grep和map有什么区别?

如何解决《Perl中的grep和map有什么区别?》经验,为你挑选了2个好方法。

在Perl中grep,map取一个表达式和一个列表,并计算列表中每个元素的表达式.

两者有什么区别?



1> Greg Hewgill..:

grep返回原始列表中与表达式匹配的元素,同时map返回应用于原始列表的每个元素的表达式的结果.

$ perl -le 'print join " ", grep $_ & 1, (1, 2, 3, 4, 5)'
1 3 5
$ perl -le 'print join " ", map $_ & 1, (1, 2, 3, 4, 5)'
1 0 1 0 1

第一个示例打印列表中的所有奇数元素,而第二个示例打印0或1,具体取决于相应的元素是否为奇数.



2> FMc..:

我发现思考grep()map()以最一般的形式思考是有帮助的:

grep {BLOCK} LIST   
map  {BLOCK} LIST

grep() 是一个过滤器:它返回LIST中BLOCK返回true的项子集.

map()是一个映射函数:将一个值从LIST发送到BLOCK,BLOCK返回一个包含0个或更多值的列表; 所有这些BLOCK调用的组合集将是返回的最终列表map().

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有