免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6819 | 回复: 17
打印 上一主题 下一主题

map的用法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-17 12:27 |只看该作者 |倒序浏览
Hi,

请教大家一下关于map的用法。

我有一个数组,里面的每个元素都是这样的格式:

country.citya    B.123.234.456  this is test for city1a
country.cityb    B.124.345.423  this is test for cityb



我想使用map函数得到一个包含citya和cityb的数组,请教大家怎么实现?
谢谢!

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
2 [报告]
发表于 2011-06-17 12:35 |只看该作者
你是要过滤的吧?那该用 grep

@result = grep /country.city[ab]/, @list

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2011-06-17 13:01 |只看该作者
你是要过滤的吧?那该用 grep

@result = grep /country.city[ab]/, @list
zhlong8 发表于 2011-06-17 12:35


楼主的情况如果每行都是这样的格式,那么用map得到的结果也是一样的

如果文件有10行,其中6行符合匹配,那么grep会按照过滤条件得到正确的元素个数存在@result中。
但是map,就肯定会得到10个元素,即使其中的4个是不符合要求的。

To zhlong8,
我总是用grep过滤,用map来处理并生成对应的新的元素。
不知道map和grep还有什么显著的不同吗?

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
4 [报告]
发表于 2011-06-17 13:16 |只看该作者
楼主的情况如果每行都是这样的格式,那么用map得到的结果也是一样的

如果文件有10行,其中6行符合匹 ...
py 发表于 2011-06-17 13:01



    map 是进行操作然后返回一个 list,grep 只是判断只要为真返回原来的元素。所以 map 对每个元素都会生成新值即使是 map $_, LIST 也会复制,而 grep 返回的是原来的值。别的就不清楚了

论坛徽章:
0
5 [报告]
发表于 2011-06-17 13:34 |只看该作者
回复 2# zhlong8


    这样做是会等到一个跟原来一下的数组,但是我想要等到citya,cityb的数组

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
6 [报告]
发表于 2011-06-17 13:51 |只看该作者
回复  zhlong8


    这样做是会等到一个跟原来一下的数组,但是我想要等到citya,cityb的数组
yang200218 发表于 2011-06-17 13:34



    能不能详细描述下你的数据,和你所指的 citya cityb

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2011-06-17 14:05 |只看该作者
map 是进行操作然后返回一个 list,grep 只是判断只要为真返回原来的元素。所以 map 对每个元素都 ...
zhlong8 发表于 2011-06-17 13:16


grep都是返回原值吗?应该也是可以任意修改的吧,和map一样
  1. @group = ('aa,','bb,','cc,');
  2. @array = grep {s/,$//} @group;
  3. print Dumper \@array;

  4. $VAR1 = [
  5.           'aa',
  6.           'bb',
  7.           'cc'
  8.         ];
复制代码

论坛徽章:
0
8 [报告]
发表于 2011-06-17 14:05 |只看该作者
真不知道所谓的数组 长什么样?

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
9 [报告]
发表于 2011-06-17 14:09 |只看该作者
grep都是返回原值吗?应该也是可以任意修改的吧,和map一样
py 发表于 2011-06-17 14:05



    还是原值啊,因为你原来的 @group 都变了吧

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
10 [报告]
发表于 2011-06-17 14:19 |只看该作者
真不知道所谓的数组 长什么样?
mysqllog 发表于 2011-06-17 14:05



    数组即 AV 在 5.14 长这个样子

见 illguts http://cpansearch.perl.org/src/RURBAN/illguts-0.36/index-14.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP