Sõnastikud

Sõnastikud

Mõiste: Andmestruktuur, kus andmed on organiseeritud võtmete ja nendega seotud väärtuste paaridena.

Loomine:

  • Tühi sõnastik: andmed = {}
  • Kohe andmetega: andmed = {'nimi': 'Mari', 'vanus': 25}
  • Kasutades dict() funktsiooni: andmed = dict(nimi='Mari', vanus=25)

Põhitegevused:

  • Väärtuse lugemine: andmed['nimi'] või turvalisemalt andmed.get('nimi', 'Vaikeväärtus')
  • Lisamine / muutmine:
    andmed['nimi'] = 'Kati'
    andmed['email'] = 'kati@example.com'
  • Eemaldamine:
    del andmed['vanus'] või
    andmed.pop('vanus')
  • Läbimine: for k, v in andmed.items(): print(k, v)

Olulisemad meetodid:

  • get(voti, vaikeväärtus) – tagastab väärtuse või vaikeväärtuse, kui võtit pole.
  • keys(), values(), items() – vastavalt võtmete, väärtuste ja paaride saamiseks.
  • update(teine_sonastik) – lisab või uuendab paare teise sõnastiku põhjal.
  • pop(voti) – eemaldab võtme ja tagastab selle väärtuse.
  • clear() – tühjendab sõnastiku.

Näide loendist sõnastiku loomiseks:

read = ['Kes?:Jaan', 'Kus?:Tallinn']
kus_vas = {rida.split(':')[0].strip(): rida.split(':')[1].strip() for rida in read}
# {'Kes?': 'Jaan', 'Kus?': 'Tallinn'}

Võtme olemasolu kontroll:

if 'nimi' in andmed:
    print('Võti olemas!')

Teksti muutmine kõneks (Text-to-Speech)

1. pyttsx3 moodul (töötab ilma internetita)

  • Paigaldamine:
    pip install pyttsx3
  • Koodi näide:
import pyttsx3
def raagi(tekst):
    mootor = pyttsx3.init()
    mootor.say(tekst)
    mootor.runAndWait()
raagi("Tere, maailm!")

Plussid: Vajab vaid arvutit, ei salvesta heli, ei vaja internetti.

Miinused: Hääl võib tunduda ebaloomulik, piiratud keeletugi.


2. gTTS + playsound (nõuab internetti)

Paigaldamine:
pip install gTTS playsound

Koodi näide:

from gtts import gTTS
from playsound import playsound

def raagi(tekst, keel='et'):
    obj = gTTS(text=tekst, lang=keel, slow=False)
    obj.save("heli.mp3")
    playsound("heli.mp3")
raagi("Tere, maailm!", 'et')

Plussid: Kõlab loomulikult, toetab mitut keelt (nt eesti, vene, inglise jne).

Miinused: Vajab internetiühendust ja loob ajutise helifaili.

Keelekoodid:

  • 'et' – eesti
  • 'ru' – vene
  • 'en' – inglise
  • 'de' – saksa
  • 'fi' – soome

Näide kasutusest sõnastikuga:

sonastik = {'koer': 'собака'}
raagi('koer', 'et')
raagi(sonastik['koer'], 'ru')