開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc., Emacs(Text Editor)
- プログラミング言語: Perl
『続・初めてのPerl 改訂版』(Randal L. Schwartz, brian d foy, Tom Phoenix 著、伊藤 直也、田中 慎司、吉川 英興 監訳、株式会社ロングテール/長尾 高弘 訳、オライリー・ジャパン、2006年、ISBN4-87311-305-9)の9章(リファレンスを使った実践的なテクニック)の9.9(練習問題)3を解いてみる。
その他参考書籍
3.
コード(BBEdit)
sample.pl
#!/usr/bin/env perl use strict; use warnings; use 5.016; use utf8; binmode STDOUT, ':utf8'; binmode STDIN, ':utf8'; binmode STDERR, ':utf8'; use Benchmark q(timethese); my @files = glob "/opt/local/bin/*"; my $sort = q{ my @sorted = sort { -s $a <=> -s $b } @files;}; my $schwartz = q{ my @sorted = map { $_->[0]; } sort { $a->[1] <=> $b->[1]; } map { [$_, -s $_]; } @files; }; my $count = 10 ** 6; timethese($count, { sort => $sort, schwartz => $schwartz });
入出力結果(Terminal)
$ ./sample.pl test.txt ソート前 A a kamimura's blog http://sitekamimura.blogspot.com KMI http://www.mkamimura.com Fred FRED fred frederick Alfred fred flintstone Mr. Slate Mississippi Bamm-Bamm wilama barney wilma and fred fred and wilma Wilma and Fred Fred and Wilma wilma&fred Mrs. Wilma Flintstone I saw Wilma yesterday I, Wilma! Z llama 通常ソート A Alfred Bamm-Bamm FRED Fred Fred and Wilma I saw Wilma yesterday I, Wilma! KMI Mississippi Mr. Slate Mrs. Wilma Flintstone Wilma and Fred Z a barney fred fred and wilma fred flintstone frederick http://sitekamimura.blogspot.com http://www.mkamimura.com kamimura's blog llama wilama wilma and fred wilma&fred 辞書順ソート後 A a Alfred Bamm-Bamm barney Fred FRED fred fred and wilma Fred and Wilma frederick fred flintstone http://sitekamimura.blogspot.com http://www.mkamimura.com I saw Wilma yesterday I, Wilma! kamimura's blog KMI llama Mississippi Mr. Slate Mrs. Wilma Flintstone wilama wilma and fred Wilma and Fred wilma&fred Z $
ちなみにpython3.3の場合。
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 ## Copyright (C) 2013 by kamimura #-*- coding: utf-8 -*- import sys import re strs = [] with open(sys.argv[1]) as f: strs = f.readlines() strs = list(map(lambda x: x.rstrip(), strs)) sorted_str = sorted(strs) def dict_sort(x): x = x.lower() x = re.sub(r'[^a-z]', '', x) return x sorted_dict = sorted(strs, key=dict_sort) print('ソート前') print('\n'.join(strs)) print('通常ソート後') print('\n'.join(sorted_str)) print('辞書順ソート後') print('\n'.join(sorted_dict))
入出力結果(Terminal)
$ ./sample.py test.txt ソート前 A a kamimura's blog http://sitekamimura.blogspot.com KMI http://www.mkamimura.com Fred FRED fred frederick Alfred fred flintstone Mr. Slate Mississippi Bamm-Bamm wilama barney wilma and fred fred and wilma Wilma and Fred Fred and Wilma wilma&fred Mrs. Wilma Flintstone I saw Wilma yesterday I, Wilma! Z llama 通常ソート後 A Alfred Bamm-Bamm FRED Fred Fred and Wilma I saw Wilma yesterday I, Wilma! KMI Mississippi Mr. Slate Mrs. Wilma Flintstone Wilma and Fred Z a barney fred fred and wilma fred flintstone frederick http://sitekamimura.blogspot.com http://www.mkamimura.com kamimura's blog llama wilama wilma and fred wilma&fred 辞書順ソート後 A a Alfred Bamm-Bamm barney Fred FRED fred fred and wilma Fred and Wilma frederick fred flintstone http://sitekamimura.blogspot.com http://www.mkamimura.com I saw Wilma yesterday I, Wilma! kamimura's blog KMI llama Mississippi Mr. Slate Mrs. Wilma Flintstone wilama wilma and fred Wilma and Fred wilma&fred Z $
0 コメント:
コメントを投稿