numbers.txt
text
1**** * * * **** **** **** **** **** **** ****
2| | | | | | | | | | | | | | |
3**** * **** **** **** **** * * * * **** ****
4| | | | | | | | | | | | |
5**** * * **** **** **** **** * **** ****
python
1# numbers list
2numbers = [
3 ['*|*|*', '* *', '* *', '*|*|*'], # 0
4 ['*|*|*'], # 1
5 ['* *|*', '* * *', '* * *', '*|* *'], # 2
6 ['* * *', '* * *', '* * *', '*|*|*'], # 3
7 ['*|* ', ' * ', ' * ', '*|*|*'], # 4
8 ['*|* *', '* * *', '* * *', '* *|*'], # 5
9 ['*|*|*', '* * *', '* * *', '* *|*'], # 6
10 ['*|* ', '* ', '* ', '*|*|*'], # 7
11 ['*|*|*', '* * *', '* * *', '*|*|*'], # 8
12 ['*|* *', '* * *', '* * *', '*|*|*'], # 9
13]
14
15#
16with open('numbers.txt', 'r') as f:
17 n = f.read().splitlines()
18
19# transpose
20n = [''.join(l) for l in zip(*n)]
21
22# matching
23def pattern_matching(blk):
24 for i, num in enumerate(numbers):
25 if blk == num:
26 return i
27 return None
28
29#
30sep = ' '
31blk, lst = [], []
32for l in n:
33 if l == sep:
34 if not blk: continue
35 lst.append(pattern_matching(blk))
36 blk = []
37 else:
38 blk.append(l)
39
40# last number
41lst.append(pattern_matching(blk))
42
43print(lst)
44
45#
46[6, 1, 4, 8, 3, 9, 0, 7, 2, 5]