Annettuna on tiedot kaupunkien välisistä junayhteyksistä. Jokainen yhteys on kaksisuuntainen ja sillä on tietty hinta, joka on sama kumpaankin suuntaan.
Tehtäväsi on muodostaa hintataulukko, joka näyttää halvimman hinnan jokaisen kaupungin välillä käyttäen junayhteyksiä. Taulukon tulee muodostua sisäkkäisistä listoista, ja siinä tulee näkyä kaupunkien nimet ja hinnat. Kaupungit tulee järjestää aakkosjärjestykseen taulukossa. Jos mitään yhteyttä ei ole, taulukossa tulee näkyä hintana -1. Esimerkki taulukosta on alla olevassa tehtäväpohjassa.
Luokassa tulee olla seuraavat metodit:
add_city
: lisää uuden kaupunginadd_train
: lisää junayhteyden kahden kaupungin välillefind_prices
: palauttaa hintataulukon
Voit olettaa, että ennen metodin add_train
kutsumista molemmat kaupungit on lisätty metodilla add_city
.
Toteuta tiedostoon trainprices.py
luokka TrainPrices
, joka toimii seuraavan esimerkin mukaisesti.
class TrainPrices: def __init__(self): # TODO def add_city(self, name): # TODO def add_train(self, city1, city2, price): # TODO def find_prices(self): # TODO if __name__ == "__main__": t = TrainPrices() t.add_city("Helsinki") t.add_city("Turku") t.add_city("Tampere") t.add_city("Oulu") t.add_train("Helsinki", "Tampere", 20) t.add_train("Helsinki", "Turku", 10) t.add_train("Tampere", "Turku", 50) print(t.find_prices()) # metodin haluttu tulos: # [[None, 'Helsinki', 'Oulu', 'Tampere', 'Turku'], # ['Helsinki', 0, -1, 20, 10], # ['Oulu', -1, 0, -1, -1], # ['Tampere', 20, -1, 0, 30], # ['Turku', 10, -1, 30, 0]]