Skip to content

Commit 782da89

Browse files
author
yaneeck
committed
day06: defaultdict and namedtuple
1 parent b20df64 commit 782da89

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

days/04-06-collections/day06.py

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,39 @@
1-
from collections import defaultdict
21
import csv
2+
from collections import defaultdict, namedtuple
33

4-
# miasta = defaultdict(lambda: defaultdict(lambda: defaultdict(float)))
5-
miasta = defaultdict(lambda: defaultdict(int))
4+
5+
pola: list[str] = [
6+
'dlugosc_tras_autobusowych_w_granicach_miasta',
7+
'dlugosc_tras_trolejbusowych_w_granicach_miasta',
8+
'dlugosc_linii_autobusowych_w_granicach_miasta',
9+
'dlugosc_linii_trolejbusowych_w_granicach_miasta',
10+
'wozokm_autobusowe_w_granicach_miasta',
11+
'wozokm_trolejbusowe_w_granicach_miasta'
12+
]
13+
Dane = namedtuple(typename='Dane', field_names=pola)
14+
miasta = defaultdict(lambda: defaultdict(Dane))
615

716
with open('uklad-komunikacyjny.csv', encoding='utf8') as file:
817
reader = csv.DictReader(file, fieldnames=None, delimiter=';')
918
for row in reader:
10-
miasta[row['miasto']][row['year']] = 0
19+
miasta[row['miasto']][row['year']] = Dane(
20+
dlugosc_linii_autobusowych_w_granicach_miasta=row['dlugosc_linii_autobusowych_w_granicach_miasta'],
21+
dlugosc_linii_trolejbusowych_w_granicach_miasta=row['dlugosc_linii_trolejbusowych_w_granicach_miasta'],
22+
dlugosc_tras_autobusowych_w_granicach_miasta=row['dlugosc_tras_autobusowych_w_granicach_miasta'],
23+
dlugosc_tras_trolejbusowych_w_granicach_miasta=row['dlugosc_tras_trolejbusowych_w_granicach_miasta'],
24+
wozokm_autobusowe_w_granicach_miasta=row['wozokm_autobusowe_w_granicach_miasta'],
25+
wozokm_trolejbusowe_w_granicach_miasta=row['wozokm_trolejbusowe_w_granicach_miasta']
26+
)
1127

1228
for miasto in miasta:
1329
for rok in miasta[miasto]:
14-
print(f"{miasto} {rok}")
30+
print(
31+
f"{miasto} "
32+
f"{rok}: "
33+
f"{miasta[miasto][rok].dlugosc_linii_autobusowych_w_granicach_miasta} "
34+
f"{miasta[miasto][rok].dlugosc_linii_trolejbusowych_w_granicach_miasta} "
35+
f"{miasta[miasto][rok].dlugosc_tras_autobusowych_w_granicach_miasta} "
36+
f"{miasta[miasto][rok].dlugosc_tras_trolejbusowych_w_granicach_miasta} "
37+
f"{miasta[miasto][rok].wozokm_autobusowe_w_granicach_miasta} "
38+
f"{miasta[miasto][rok].wozokm_trolejbusowe_w_granicach_miasta}"
39+
)

0 commit comments

Comments
 (0)