Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Johdatus ohjelmointiin, 20.11.2024, koodipaja 8
- print("Tervetuloa!")
- # UUSI TIEDOSTO
- # ladataan weather -data normaalisti (ks. monimutkaiset tietorakenteet -luennon muistio)
- # tapa 1: tehdään jokaiselle alueelle oma lista
- # johon kerrytetään sen alueen tuulen nopeudet
- # hyvät puolet: yksinkertainen ja helpohko toteuttaa
- # huonot puolet: ei taivu kovin hyvin siihen, että alueiden
- # tarkka lukumäärä muuttuu datassa
- lapland_winds = []
- middle_winds = []
- south_winds = []
- # silmukoidaan säädata mittauspaikka kerrallaan
- for city in weather:
- # print(city['area'])
- # esim. jos tuuli on lapland-alueelta
- # lisätään se lapland-listaan
- if city['area'] == "lapland":
- lapland_winds.append(city['wind'])
- # tähän sitte muiden alueiden ehtolauseet, todnäk elif sopivin jne.
- # esim. lapland_winds-listassa on nyt kaikki lapland-alueen tuulet
- print(lapland_winds)
- # ja tästä eteenpäin voidaan laskea keskiarvo normaalisti
- lapland_average = sum(lapland_winds) / len(lapland_winds)
- print(lapland_average)
- # UUSI TIEDOSTO, dynaamisempi versio ylemmästä
- # ladataan weather -data normaalisti (ks. monimutkaiset tietorakenteet -luennon muistio)
- # tapa 2: tehdään tyhjä dictionary, jonka tarkoitus on varastoida
- # kaikkien alueiden keskiarvot huolimatta siitä, kuinka monta aluetta datassa on
- # hyvät puolet: skaalautuu erittäin hyvin muutoksiin
- # huonot puolet: koodin rakenne on monimutkaisempi, ja voi olla aluksi vaikea ymmärtää
- area_winds = {}
- # silmukoidaan säädata mittauspaikka kerrallaan
- for city in weather:
- # idea on tämä: jos tämänhetkistä areaa ei ole vielä tullut vastaan:
- # lisätään area_winds-dictionaryyn uusi avain tällä arealla ja luo
- # sille uusi tyhjä lista
- # jos tämä area jo löytyy dictionarystä: lisätään tämänhetkinen tuuli
- # tämän arean listan jatkoksi
- index = city['area']
- # onko kyseinen area eli indeksi dictionaryssä, jos ei,
- # lisätään dictionaryyn + tyhjä lista arvoksi
- if index not in area_winds:
- area_winds[index] = []
- # koska nyt voimme olla varmoja että tällä indeksillä on lista
- # voimme lisätä tämän alueen tuulen siihen kuuluvan arean listaan
- area_winds[index].append(city['wind'])
- # tarkistetaan dictionaryn sisältö
- print(area_winds)
- # tämän jälkeen voitaisiin tehdä toinen for-silmukka, jossa
- # käydään area_winds -dictionaryä alueen nimi kerrallaan läpi
- # ja lasketaan lennosta keskiarvo jokaiselle alueelle
- # tehtävänannossa tulee myös käyttää käyttäjäystävällisempää nimeä
- # kuin lapland, middle tai south => Lappi, Maan keskiosa tai Etelä-Suomi
- # yleensä näille tehdään joku apudictionaryä, missä on jokaiselle
- # avaimelle käyttäjäystävällisempi nimi, jota voi sitten hyödyntää
- # samassa listassa missä lasketaan keskiarvot
- # vielä näppärämpi tapa on tallentaa nämä selitteet omaan asetustiedostoon
- # jos ne haetaan koodilla
- # jos käyttäjäystävällisempää nimeä ei löydy asetustiedostosta => käytetään datasta
- # löytyvää alueen avainarvoa ns. default-arvona (esim. west, east ym.)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement