sort sort sort!!!
时间:2010-11-02
来源:互联网
有这么一个数组:
@list = ("Alb","ant","zor","Zai");
对它sort时,大写字母开头的都排在前面。
而我想要的是不管大小写,按正常alpha字母顺序进行sort。
于是用了一个施瓦茨转换:
@sort = map { $_->[1] } sort {$a->[0] cmp $b->[0]} map { [lc($_),$_] } @list;
这个works.
然后想到ruby的Schwart Transform应该更简单,一试之下果然是:
> list.map{|c| [c.downcase,c]}.sort.map{|d| d[1]}
=> ["Alb", "ant", "Zai", "zor"]
再进一步深究下,ruby原来用sort_by这个函数(C写的)把施氏转换内置了:
> list.sort_by { |c| c.downcase }
=> ["Alb", "ant", "Zai", "zor"]
嗯嗯,条条大路通罗马,路路相通丰田车!
@list = ("Alb","ant","zor","Zai");
对它sort时,大写字母开头的都排在前面。
而我想要的是不管大小写,按正常alpha字母顺序进行sort。
于是用了一个施瓦茨转换:
@sort = map { $_->[1] } sort {$a->[0] cmp $b->[0]} map { [lc($_),$_] } @list;
这个works.
然后想到ruby的Schwart Transform应该更简单,一试之下果然是:
> list.map{|c| [c.downcase,c]}.sort.map{|d| d[1]}
=> ["Alb", "ant", "Zai", "zor"]
再进一步深究下,ruby原来用sort_by这个函数(C写的)把施氏转换内置了:
> list.sort_by { |c| c.downcase }
=> ["Alb", "ant", "Zai", "zor"]
嗯嗯,条条大路通罗马,路路相通丰田车!
作者: 兰花仙子 发布时间: 2010-11-02
use Sort::Maker;
你懂的。
你懂的。
作者: flw 发布时间: 2010-11-02
QUOTE:
use Sort::Maker;
你懂的。
flw 发表于 2010-11-02 18:07
你懂的。
flw 发表于 2010-11-02 18:07
俺还的确没用过这个模块~~
作者倒是认识~~

作者: 兰花仙子 发布时间: 2010-11-02

作者: zhlong8 发布时间: 2010-11-02
本帖最后由 zhlong8 于 2010-11-02 19:10 编辑
看来仙子准备在 Perl 版暴力强推 Ruby 啊
准备去ruby下
看来仙子准备在 Perl 版暴力强推 Ruby 啊

准备去ruby下
作者: zhlong8 发布时间: 2010-11-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28