CHEM-A2600 - Kemiantekniikan ohjelmointikurssi, 03.06.2019-31.08.2019
This course space end date is set to 31.08.2019 Search Courses: CHEM-A2600
Python-oppimateriaali (CHEM-A2600)
Lyhyt opas Python-ohjelmointiin
Sanakirjat
Sanakirjassa alkiot määritellään avain:arvo -pareina:
atomipainot = {"H": 1.008, "C": 12.011, "O": 15.999}
Tämän määrittelyn jälkeen avainta vastaavan arvon voi noutaa näin:
print("Hiilen atomipaino on", atomipainot["C"])
tulostaa
Hiilen atomipaino on 12.011
Määrittelyssä käytetään siis kaarisulkeita, mutta kun arvoihin viitataan avaimella, käytetään hakasulkeita.
Tyhjän sanakirjan luominen
uusi_sanakirja = {}
Arvojen lisääminen sanakirjaan
Arvojen lisääminen sanakirjaan on helppoa: annetaan vain uusi avain ja arvo:
# Luodaan tyhjä sanakirja ja lisätään kolme avain:arvo -paria atomipainot = {} atomipainot["H"] = 1.008 atomipainot["C"] = 12.011 atomipainot["O"] = 15.999 print(atomipainot)
Tulostaa
{'H': 1.008, 'C': 12.011, 'O': 15.999}
Voit siis myös määritellä sanakirjan ensin tiettyjen avain:arvo parien kanssa ja lisätä siihen myöhemmin lisää pareja:
atomipainot = {"H": 1.008, "C": 12.011, "O": 15.999}
atomipainot["P"] = 30.973
print(atomipainot)
tulostaa
{'H': 1.008, 'C': 12.011, 'O': 15.999, 'P': 30.973}
Python tulostaa sanakirjojen avaimet aina yksinkertaisia lainausmerkkejä käyttäen.
in-avainsana toimii samaan tapaan kuin listojen kanssa:
# in-avainsanalla voi testata, onko avain sanakirjassa: atomipainot = {"H": 1.008, "C": 12.011, "O": 15.999} if "C" in atomipainot: print("Hiilen atomipaino on", atomipainot["C"])
tulostaa
Hiilen atomipaino on 12.011
Arvojen poistaminen sanakirjasta
Arvojen poistaminen sanakirjasta onnistuu del-avainsanalla:
atomipainot = {"H": 1.008, "C": 12.011, "O": 15.999} del atomipainot["C"] print(atomipainot)
tulostaa
{'H': 1.008, 'O': 15.999}
Sanakirjan läpikäyminen, items()
Sanakirjan items()-funktio antaa arvot läpikäyntiä varten:
atomipainot = {"H": 1.008, "C": 12.011, "O": 15.999} for alkuaine, atomipaino in atomipainot.items(): print("Alkuaineen {:s} atomipaino on {:.3f} g/mol".format(alkuaine, atomipaino))
tulostaa
Alkuaineen H atomipaino on 1.008 g/mol Alkuaineen C atomipaino on 12.011 g/mol Alkuaineen O atomipaino on 15.999 g/mol
Yleinen muoto siis
for AVAIN, ARVO in SANAKIRJA.items(): print(AVAIN, ARVO) # Silmukassa voimme käyttää avaimia ja arvoja kuten haluamme.
Sanakirjan lajitteleminen
sorted()-funktiolla voi tulostaa avaimet aakkosjärjestyksessä tai arvot järjestyksessä (values-funktio):
atomipainot = {"P": 30.973, "C": 12.011, "O": 15.999} print(sorted(atomipainot)) print(sorted(atomipainot.values()))
tulostaa
['C', 'O', 'P'] [12.011, 15.999, 30.973]
Huomaa kuitenkin, että alkuperäisen sanakirjan (atomipainot) järjestys ei muutu, vaikka kutsuisit sorted-funktiota. Vain funktion paluarvoja palaava lista muuttuu.
Huom! Ennen Pythonin versiota 3.6, sanakirjan avain:arvo parit olivat satunnaisessa järjestyksessä. Versiosta 3.6 eteenpäin ne ovat siinä järjestyksessä, missä ne on lisätty sanakirjaan. Tätä ei ole kuitenkaan vielä vahvistettu standardissa. Jos tarvitset sanakirjan, joka pysyy aina järjestyksessä, katso OrderedDict.
Listat sanakirjojen sisällä
Sanakirjan arvot voivat olla vaikka listoja:
# Sanakirjan arvot voivat olla vaikka listoja: yhdisteet = {"C2H6": ["C", 2, "H", 6], "NaCl": ["Na", 1, "Cl", 1] # indeksi: 0 1 2 3 } print(yhdisteet["C2H6"]) print("Yhdisteessa C2H6 on", yhdisteet["C2H6"][3], "vetyatomia")
tulostaa
['C', 2, 'H', 6]
Yhdisteessa C2H6 on 6 vetyatomia