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 . Esimerkki taulukosta on alla olevassa tehtäväpohjassa.
Toteuta tiedostoon trainprices.py
luokka TrainPrices
, jossa on 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
.
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__": prices = TrainPrices() prices.add_city("Helsinki") prices.add_city("Turku") prices.add_city("Tampere") prices.add_city("Oulu") prices.add_train("Helsinki", "Tampere", 20) prices.add_train("Helsinki", "Turku", 10) prices.add_train("Tampere", "Turku", 50) print(prices.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]]