各文字の出現回数を数える
30分プログラム、その795。anarchy golf - asunderにインスパイアされました。
入力中のアルファベットの出現回数を数えます。たぶん暗号解読に便利な頻度表の作成に便利なんじゃないですかね(適当)。
使い方
$ echo abc | python asunder.py A: 0 B: 0 C: 0 D: 0 E: 0 F: 0 G: 0 H: 0 I: 0 J: 0 K: 0 L: 0 M: 0 N: 0 O: 0 P: 0 Q: 0 R: 0 S: 0 T: 0 U: 0 V: 0 W: 0 X: 0 Y: 0 Z: 0 a: 1 b: 1 c: 1 d: 0 e: 0 f: 0 g: 0 h: 0 i: 0 j: 0 k: 0 l: 0 m: 0 n: 0 o: 0 p: 0 q: 0 r: 0 s: 0 t: 0 u: 0 v: 0 w: 0 x: 0 y: 0 z: 0 $ cat sample.txt | python asunder.py A: 16 B: 19 C: 6 D: 14 E: 12 F: 11 G: 10 H: 13 I: 9 J: 10 K: 12 L: 9 M: 16 N: 11 O: 4 P: 12 Q: 13 R: 15 S: 9 T: 14 U: 9 V: 7 W: 11 X: 10 Y: 15 Z: 12 a: 13 b: 13 c: 9 d: 14 e: 5 f: 20 g: 5 h: 13 i: 10 j: 14 k: 10 l: 11 m: 11 n: 14 o: 11 p: 11 q: 15 r: 14 s: 6 t: 12 u: 12 v: 9 w: 17 x: 8 y: 15 z: 9
ソースコード
#! /usr/bin/python # -*- mode:python; coding:utf-8 -*- import sys d = {} for i in sys.stdin: for c in i: if c.isalpha(): d[c] = d.get(c,0) + 1 for k in range(ord('A'),ord('Z')+1) + range(ord('a'),ord('z')+1): print "%s: %2d" % (chr(k),d.get(chr(k),0))