def les_fil_returner_tabell(filnavn): liste = [] fil = open(filnavn) for linje in fil: liste.append(linje.strip().split("\t")) return liste # Starten av kommuneliste ser n? s?nn ut: # [ # ['03', 'Oslo', '0301', 'Oslo', '0301'], # ['11', 'Rogaland', '1101', 'Eigersund', '1101'], # ['11', 'Rogaland', '1103', 'Stavanger', '1103'], # ... # ] kommuneliste = les_fil_returner_tabell("liste.txt") # ?nsker ? lage ei ordbok med kommunenr som n?kkel, # og kommunenavn, fylkesnr, fylkesnavn og gammelt kommunenummer # i ei liste som innholdsverdi. F.eks. for 1101 Eigersund: # { '1101': ['Eigersund', '11', 'Rogaland', '1101'] } kommuner = {} for komm in kommuneliste: kommuner[ komm[2] ] = [komm[3], komm[0], komm[1], komm[4]] # Her er det mye un?dvendig lagring av fylkesnavn. Vil derfor opprette # ei ny ordbok (fylker) med fylkesnummer som n?kkel og fylkesnavn som innholdsverdi: fylker = {} for k in kommuner: if not (kommuner[k][1] in fylker): # hvis fylket ikke finnes i ordboka fylker[kommuner[k][1]] = kommuner[k][2] ''' Ordboka fylker ser n? slik ut: {'03': 'Oslo', '11': 'Rogaland', '15': 'M?re og Romsdal', '18': 'Nordland - Nordl¨˘nnda', '31': '?stfold', '32': 'Akershus', '33': 'Buskerud', '34': 'Innlandet', '39': 'Vestfold', '40': 'Telemark', '42': 'Agder', '46': 'Vestland', '50': 'Tr?ndelag - Tr??ndelage', '55': 'Troms ¨C Romsa ¨C Tromssa', '56': 'Finnmark ¨C Finnm¨˘rku ¨C Finmarkku'} Da trenger vi kun ? lagre kommunenavn og fylkesnummer i ordboka som har kommunenummer som n?kkel. Vi oppdaterer ''' for komm in kommuneliste: # kommunenr kommunenavn fylkesnr kommuner[ komm[2] ] = [komm[3], komm[0]] # Tester ved ? skrive ut kommunenavn og fylkesnavn: for k in kommuner: print(kommuner[k][0], "ligger i", fylker[kommuner[k][1]]) ''' Det blir ganske uoversiktelig med flere lister (av lister), ordb?ker, n?kler og indekser Men dette kan vi gj?re noe med ved ? lage objekter, se neste fil fra_samling_til_obj01.py '''