作者gohiei (真是無聊的...)
看板perl
標題Re: [問題] 關於排序
時間Sat Jul 21 14:01:33 2007
※ 引述《abliou (Art of Life)》之銘言:
: : 推 handsomegirl:前面欄位不固定的問題,split可以從後面切回來嗎? 07/20 10:42
: 照L大的概念重寫一遍...找出往後算回會固定也是不錯的idea...
: ####################################################
: @data = map { substr $_ ,10 }
: sort
: map { [split/ /,$_]->[-3].$_ } @data;
: print $_,$/ foreach(@data);
: ####################################################
貢獻一個,
print
map { $_->[1] }
sort { $a->[0] cmp $b->[0] }
map { [(split /\s+/)[1] , $_ ] } @data;
基本上和大家的做法差不多了,
不過我是採用 [ ],這個技巧好像在 Perl Cookbook 有看過,
而且有特殊名稱,可惜我忘記了
這樣子可以省略掉最後必須 substr,
在 Cookbook 也有提過 split 和 substr 的效率並不是很好
所以能省就儘量省吧!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.240.172.81
推 david220:(split /\s+/)[1] => (split /\s+/)[-3] 07/21 15:39
推 LiloHuang:你這個是史瓦茲轉換 這個效能會比我的那個GRT字串差... 07/21 15:40
→ LiloHuang:substr效率基本上算快的了 GRT精神在於substr XD 07/21 15:41
→ LiloHuang:這兩者的比較你可以Google一下 GRT快史瓦茲2倍速度左右 07/21 15:42
推 LiloHuang:另外剛剛我實在翻不到Cookbook哪一頁說substr效率不好 07/21 16:13
→ LiloHuang:可否請你說明一下是在哪一頁看到的 謝謝^^ 07/21 16:13