06 with defaultdict
This commit is contained in:
43
06/06_defaultdict.py
Normal file
43
06/06_defaultdict.py
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
#file = "./input.txt"
|
||||||
|
file = "./ex.txt"
|
||||||
|
from time import time
|
||||||
|
from collections import defaultdict
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def read_file(filename:str)->list[str]:
|
||||||
|
result = []
|
||||||
|
input_file = open(filename, "r")
|
||||||
|
for line in input_file:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
result.append(line)
|
||||||
|
input_file.close()
|
||||||
|
return result
|
||||||
|
|
||||||
|
def counter_dicts(da:list[str])->list[dict[str:int]]:
|
||||||
|
result = [defaultdict(int) for _ in range(len(da[0]))]
|
||||||
|
for d in da:
|
||||||
|
for i,b in enumerate(d):
|
||||||
|
result[i][b] += 1
|
||||||
|
return result
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
data = read_file(file)
|
||||||
|
dicts = counter_dicts(data)
|
||||||
|
|
||||||
|
sol = ""
|
||||||
|
for dic in dicts:
|
||||||
|
sol += max(dic, key=dic.get)
|
||||||
|
print(f"Solution Part1: {sol}")
|
||||||
|
|
||||||
|
sol = ""
|
||||||
|
for dic in dicts:
|
||||||
|
sol += min(dic, key=dic.get)
|
||||||
|
print(f"Solution Part2: {sol}")
|
||||||
|
|
||||||
|
print(f'Runtime: {time()-start_time:.4f} s')
|
||||||
Reference in New Issue
Block a user