Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: printattujen rivien järjestyksen muuttaminen

Senilix67 [04.03.2020 20:02:20]

#

Olen ihan vasta-alkaja Pythonissa eli joku 2 vkoa sitten asennettu Python ja PyCharm. Ohjelmointikokemusta ei muuten mutta Delphi 3 tuli joskus oliko Mikrobitissä vai Kompuutterissa ja sillä tein aika paljonkin yksinkertaisia tilasto-ohjelmia. Loppui joskus 2005 seudussa Delphin käyttö.

Olen tehnyt joitakin yksinkertaisia ohjelmia ja viimeisin on sellainen, joka on eräänlainen tekstimuotoinen urheilupeli. Siinä syötän nimiä jotka menee listaan. Tästä listassa olevilla urheilijoilla on muuttujia (esim. nimi, ikä, taito-ominaisuus, kestävyysominaisuus yms. numeerisesti ilmaistavaa).

Ohjelma laskee ennakkoon asetettujen tiettyjen arvojen, yksilöllisten muuttujien ja olosuhdemuuttujien sekä osittaisen randomisaatiokertoimien avulla tuloksia.

Laskutoimitukset tapahtuu loopin kautta ja ohjelma printtaa nimen ja määrätyt muuttujat. Tuloksena on formatin avulla kauniit rivit ja kolumnit jotka on ihan oikein paikoillaan. Eli ohjelma toimii sinällään niin kuin tarkoitettu.

Haluaisin kuitenkin että nämä printatut rivit järjestyisi tiettyjen kolumnien mukaan. Onko tähän järkevää keinoa. Nämä tiedot ei siis ole enää listassa. Rivejä tulee niin paljon että ihan vertailemalla eri rivejä en rupea tekemään.
Tavoitteet ei ole korkealla vaan ihan omaksi huvikseni ohjelmoin niin kuin varmaan huomaatte.

jalski [04.03.2020 22:38:07]

#

Ei tuohon kai oikein muuta fiksua tapaa ole kuin tallentaa urheilijan tiedot dictionaryyn ja urheilijat listaan. Lajittelet listan urheilijan tiedot tallentavan dictionaryn halutun avaimen mukaan ja sitten tulostat lajitellun listan.


Esim.

data = [ { 'name': 'jalle', 'age': 39 }, { 'name': 'palle', 'age': 5 }, { 'name': 'kalle', 'age': 21 } ]

def sortName(m):
       return m['name']

def sortAge(m):
       return m['age']

data.sort(key = sortName)
print(data)

data.sort(key = sortAge)
print(data)

Senilix67 [11.03.2020 20:10:24]

#

Kiitos, onnistui noin, jouduin jkv mulkkaamaan ohjelmaa, koska alun perin rakennettu erilailla.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta