開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の5章(ハッシュ)、6.6(練習問題)2を解いてみる。
その他参考書籍
2.
コード(TextWrangler)
sample.pl
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';
my %count = ();
while(<>){
chomp;
next if /^\s*$/;
$count{$_} += 1;
}
for(sort keys %count){
print "$_: $count{$_}回\n";
}
入出力結果(Terminal)
$ ./sample.pl tmp.txt barney: 1回 dino: 1回 fred: 3回 wilma: 1回 $ cat tmp.txt fred barney fred dino wilma fred $
ちなみにJavaScriptの場合。
コード(TextWrangler)
var result = "";
var text = 'fred\nbarney\nfred\ndino\nwilma\nfred\n\n';
var lines = text.split("\n");
var count = {};
for(var i = 0; i < lines.length; i++){
if(/^\s*$/.test(lines[i])) continue;
if(lines[i] in count){
count[lines[i]] += 1;
} else {
count[lines[i]] = 1;
}
}
var keys = [];
for(var p in count){
keys.push(p);
}
keys.sort();
for(var i = 0; i < keys.length; i++){
result += keys[i] + ": " + count[keys[i]] + "回\n";
}
$('#pre0').text(result);
pythonの場合。
sample.py
コード(TextWrangler)
#!/usr/bin/env python3.3
#-*- coding:utf-8 -*-
import re
pattern = re.compile(r"^\s*$")
count = {}
for line in open('tmp.txt'):
if re.match(pattern, line): continue
line = line.strip()
if line in count:
count[line] += 1
else:
count[line] = 1
for key in sorted(count):
print("{0}: {1}回".format(key, count[key]))
入出力結果(Terminal)
$ ./sample.py barney: 1回 dino: 1回 fred: 3回 wilma: 1回 $
0 コメント:
コメントを投稿