A meresek.txt fájlban egy nyári nap időjárás adatainak mérési eredményei vannak, amit különböző településeken, különböző időpontokban mértek. Minden sor azonos módon épül fel, az elválasztók szóközök. Először a település kétbetűs kódja, majd a mérés időpontja óópp formátumban, utána 3 karakter szélirány és 2 karakter szélerősség közvetlenül egymás után, végül 2 karakter hőmérséklet (nem negatív).
Például:
BP 0300 32007 21
PA 0315 35010 19
Feladatok:
Olvasd be és tárold el a meresek.txt fájlban tárolt adatokat egy többdimenziós listába! (Figyelj arra, hogy majd nagyság szerint kell rendezned a hőmérsékleti adatokat, így azokat nem célszerű szövegként tárolni!)
A program írja ki, hány mérési eredmény érkezett a 4. és 5. órákban, és mi volt a leghidegebb, illetve legmelegebb, amit mértek ebben az időintervallumban!
Rendezd a listát a hőmérsékletek szerinti csökkenő sorrendbe! Írasd ki a képernyőre az átrendezett lista első és utolsó sorának adatait a meresek.txt fájlban tárolt formátumnak megfelelően!
Minta (nem okvetlenül a jó eredmény):
A 4. és 5. órákban a mérési eredmények száma 30, a leghidegebb 19 °C, a legmelegebb 26 °C.
Első sor: DC 1315 19007 35
Utolsó sor: SM 2345 33010 16
fajl = open('meresek.txt')
forras = fajl.read().splitlines()
fajl.close()
adatok = [sor.split(' ') for sor in forras]
for adat in adatok: # átalakítjuk egésszé stringből a hőmérséklet adatokat adat[3]=int(adat[3])
erkezett = [adat[3] for adat in adatok if adat[1][0:2] in ['04','05']] # kigyűjtjük a 04. és 05. óra hőmérséklet adatait
print('A 4. és 5. órákban a mérési eredmények száma '+str(len(erkezett))+', a leghidegebb '+str(min(erkezett))+' °C, a legmelegebb '+str(max(erkezett))+' °C.')
adatok.sort(key = lambda e:-e[3])
for adat in adatok: # átalakítjuk egészből stringgé a hőmérséklet adatokat, mert a join() csak stringeket tud összefűzni adat[3]=str(adat[3])
print('Első sor:',' '.join(adatok[0]))
print('Utolsó sor:',' '.join(adatok[-1