Skip to content

Commit 6af57c3

Browse files
committed
Use struct.unpack and iterate over rather than creating new lists.
1 parent 4bca268 commit 6af57c3

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

rounds/1_histogram/solution.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@
55
own faster implementation.
66
"""
77
from collections import Counter
8+
from struct import unpack
89

910

1011
def get_biagrams(data):
11-
i = 0
12-
max_len = len(data) -1
13-
while i < max_len:
14-
biagram = data[i: i + 2]
15-
yield biagram
16-
i += 1
12+
data_iter = iter(unpack(f'{len(data)}c', data))
13+
val_0, val_1 = next(data_iter), next(data_iter)
14+
for value in data_iter:
15+
yield val_0+val_1
16+
val_0, val_1 = val_1, value
17+
yield val_0+val_1
1718

1819

1920
def compute_histogram(path: str) -> dict[bytes, int]:

0 commit comments

Comments
 (0)