Python programozás - Szoftverfejlesztés fórum

üzenetek

hozzászólások


Lacces
(őstag)

Meg még egy kérdésem, a get()-el kapcsolatban:

for m in words:
dico[m] = dico.get(m, 0) +1
lista = dico.items()

Úgy tűnik a szótár használata nem tiszta számomra...

a get() - azt csinálja, hogy megnézi a dico szótárban az "m" kulcshoz tartozó értéket, ha szerepel benne akkor az m-et ad neki (m értéket, ami a "words" aktuális eleme), ha nem, akkor 0-t. Én így tudtam. De miért van ott az a +1 ?

Itt a könyv teljes példájának a kód sorozata:

nFile = raw_input('Kezelendo file neve : ')
fi = open(nFile, 'r')
text = fi.read()
fi.close()
# annak erdekeben, hogy a szoeg szavai konnyen elklulonithetok legyenek, a nem
# betu karaktereket betukozze alakitjuk :?
alpha = "abcdefghijklmnopqrstuvwxyzíéáúóüöÍÉÁűőŰŐÚÓÜÖ"
betuk = '' # a lerehozand uj karakterlanc
for c in text:
c = c.lower() # minden betut kisbetuve alakit
if c in alpha:
betuk = betuk + c
else:
betuk = betuk + ' '
# az eredménystring átalakítása szavak listájává :
words = betuk.split()

# a hisztogram elkészítése :
dico ={}
for m in words:
dico[m] = dico.get(m, 0) +1
lista = dico.items()
# az eredménylista rendezése :
lista.sort()
# kiiratas :
for item in lista:
print item[0], ":", item[1]

:R

üzenetek