lefts = {} rights = {} for line in open("ita2.txt", "rb"): left, right, letter, figure = line.strip().split() if letter == "_": letter = " " lefts[left] = (letter, figure) rights[right] = (letter, figure) data = "1-1 1-1 1-1 1-1 1-1 1-1 1-1 3-1 5-1 6-1 2-1 1-2 2-2 1-1 1-3 1-1 2-5 2-5 5-6 3-1 5-1 6-3 2-2 2-1 2-1 5-1 7-2 1-4 2-2 1-1 2-5 2-5 5-6" data+=" 3-1 5-1 8-2 3-5 3-4 1-1 1-1 1-1 2-1 1-5 1-2 1-1 3-1 5-1 6-1 1-2 3-3 2-2 3-1 5-1 2-1 2-1 1-1 1-1" data+=" 2-2 3-1 3-2 2-2 1-1 1-1 3-1 7-1 1-6 1-2 2-1 2-1 1-1 1-1 1-2 1-4 2-1" data+=" 5-1 2-1 4-6 6-1 7-2 2-4 1-2 2-1 2-1 1-1 1-1 1-2 1-4 2-1 5-1 1-1 1-1 1-1 2-3 3-1 6-4 2-4 1-1 1-3 2-4 2-2 3-3 2-1 1-4 1-1 1-1 3-1 5-1 6-3 2-2 1-1 1-2" data+=" 2-4 2-1 2-2 2-1 5-1 6-1 3-1 2-3 2-2 3-1 5-1 6-1 1-1 3-1 2-1 2-1 5-1 6-3 2-2 1-1 1-2" data+=" 1-1 1-2 2-1 2-1 1-2 2-3 1-2 1-3 3-8 3-1 5-1 2-1 4-1 2-1 1-1 2-5 2-1 4-1 6-1 7-1 2-4 2-2 1-1 1-2 1-1 2-1 2-1 2-4" data+=" 1-1 1-1 1-4 2-1 5-1 6-1 1-1 3-1 2-1 2-1 5-1 6-4 4-6 1-1 1-1 1-1 2-1 1-4 4-1 1-5 1-1 2-2 1-4 2-1 5-1 1-1 1-1 1-3" data+=" 2-2 1-1 1-1 1-1 2-1 1-1 2-1 1-1 3-4 4-1 6-4 4-6 1-1 1-1 1-1 2-1 1-2 3-1 2-4 1-2 1-4 3-1 5-1 1-1 1-1 1-3" data+=" 2-2 1-1 1-1 1-2 3-1 2-1 3-1 6-1 2-2 2-3 1-8 1-2 1-1 3-1 5-1 6-1 1-1 1-5 1-1 3-5 1-1 2-2 1-4 1-1 2-3 2-2 3-1 1-6" data+=" 3-1 1-1 1-5 1-1 1-1 1-5 2-1 3-2 3-2 2-2 1-1 1-5 1-1 1-2 3-4 2-1 1-1 2-6 2-2 2-3 2-2 1-1 1-2 1-1 1-2 6-6" data+=" 1-1 1-2 1-2 2-2 1-2 1-4 1-1 2-4 2-1 1-4 1-1 1-1 3-1 5-1 6-1 2-2 2-3 1-8 1-2 1-1 3-1 5-1 6-2 4-1 2-1 1-2 1-1 2-6" data+=" 2-1 1-2 2-4 2-3 2-1 3-1 4-1 1-1 2-2 2-1 1-1 1-1 1-1 6-1 1-1" s = "" for foo in data.split(): a, b = foo.split("-") s += "1" * int(a) s += "0" * int(b) for offset in xrange(1): shift = 0 ss = "" for i in range(offset, len(s)-5, 5): c = lefts[s[i:i+5]][shift] if c == "[s2f]": shift = 1 elif c == "[s2l]": shift = 0 else: ss += c print ss -------------------------------------------------- ita2.txt 00000 00000 null null 00100 00100 _ space 10111 11101 Q 1 10011 11001 W 2 00001 10000 E 3 01010 01010 R 4 10000 00001 T 5 10101 10101 Y 6 00111 11100 U 7 00110 01100 I 8 11000 00011 O 9 10110 01101 P 0 00011 11000 A – 00101 10100 S [BELL] 01001 10010 D $ 01101 10110 F ! 11010 01011 G & 10100 00101 H # 01011 11010 J ' 01111 11110 K ( 10010 01001 L ) 10001 10001 Z " 11101 10111 X / 01110 01110 C : 11110 01111 V ; 11001 10011 B ? 01100 00110 N , 11100 00111 M . 01000 00010 [CR] [CR] 00010 01000 [LF] [LF] 11011 11011 [s2f] [???] 11111 11111 [???] [s2l]