Een tekstbestand bevat een aantal regels, waarop woorden gescheiden door spaties te vinden zijn.
Er komen geen hoofdletters in dit bestand voor. Schrijf de functie tussenkarakter()
met als
enig argument de naam van het te onderzoeken tekstbestand. Het resultaat van de functie is een woordenboek,
dat opgebouwd wordt zoals hieronder beschreven.
Beschouw elk woord uit dit tekstbestand, en vul het voor- en achteraan aan met een spatie.
Bekijk vervolgens elke opeenvolging van 3 karakters in dit aangevulde woord. Noem deze karakters
$$xyz$$. De sleutel (in het te bouwen woordenboek) die je haalt uit deze drie karakters, is de string gevormd door de
opeenvolging van de karakters $$x$$ en $$z$$. Met elke sleutel stemt een lijst van karakters overeen als
waarde die bij de sleutel hoort. Deze wordt gevormd door het tussenkarakter $$y$$. Het woordenboek bevat
voor elke sleutel een lijst van mogelijke tussenkarakters die voorkomen in alle woorden uit het originele
bestand. Deze lijst wordt alfabetisch opklimmend gesorteerd gebruik makend van de standaardmethode sorted()
.
Een voorbeeld ter verduidelijking:
beschouw het woord 'vreemd'
. Na aanvullen levert dit ' vreemd '
. De eerste 3 karakters zijn ' vr'
.
Hiermee hebben we dus als sleutel ' r'
en waarde 'v'
. Analoog leveren de karakters 'vre'
de sleutel 've'
en
de waarde 'r'
. Het volledige woord vreemd
resulteert daarom in het woordenboek
{' r':['v'], 've':['r'], 're':['e'],'em':['e'], 'ed':['m'], 'm ':['d']}.
(Bemerk dat een dergelijk woordenboek kan gebruikt worden om ontbrekende karakters in een tekst te suggereren of om spelfouten te detecteren.)
maan ma maak roos markt rokresultaat van de functie
tussenkarakter()
tussenkarakter('Tekst_0_in.txt') = {'ak': ['a', 'r'], 'rt': ['k'], 'a ': ['k', 'n'], 'os': ['o'], 'k ': ['t'], 'ro': ['o'], 'mr': ['a'], 'o ': ['k', 's'], ' o': ['r'], 'm ': ['a'], 'ma': ['a'], 'rk': ['o'], ' a': ['m'], 'an': ['a']}