def _(item):
    print('\n', item, '. feladat:\n', sep='')

def f_wc(word):
    code= ''
    for lttr in word:
        code+= d_ln[lttr]
    return code
# vagy
    return ''.join([d_ln[lttr] for lttr in word]) 

keys= 'abcdefghijklmnopqrstuvwxyz'
vals= '22233344455566677778889999'
d_ln= {}
for i in range(len(keys)):
    d_ln[keys[i]]= vals[i]

_(1)

lttr= input('Kérem, adjon meg egy betűt: ')
print('A betűhöz tartozó kód:', d_ln[lttr])

_(2)

word= input('Kérem, adjon meg egy szót: ')
print('A bevitelre szolgáló számsor:', f_wc(word))

_(3)

print('A szavak.txt állomány adatainak olvasása…')
l_wds= []
dl_cw= {}
with open('inf_e_20070516_m_04_szavak.txt') as file:
    for word in file:
        word= word.strip()
        l_wds+= [word]
        code= f_wc(word)
        if not code in dl_cw:
            dl_cw[code] = [word]
        else:
            dl_cw[code]+= [word]

_(4)

maxw= max(l_wds, key=len)
print('A leghosszabb tárolt szó: ', maxw, '; ennek hossza: ', len(maxw), ' karakter.', sep= '')

_(5)

n_shw= 0
for word in l_wds:
    if len(word)<=5:
        n_shw+= 1
print('A rövid szavak száma:', n_shw)

_(6)

print('Kiírjuk a kodok.txt állományt...')
with open('inf_e_20070516_m_04_kodok.txt', 'w') as file:
    for word in l_wds:
        file.write(f_wc(word) + '\n')

_(7)

code= input('Kérem, adjon meg egy számsort: ')
if code in dl_cw:
    print('Az ehhez tartozó szó (illetve szavak):', ', '.join(dl_cw[code]))
else:
    print('Nincs ehhez tartozó szó.')

_(8)

str= ''
for code in dl_cw:
    if len(dl_cw[code])>1:
        for word in dl_cw[code]:
            str+= word + ' : ' + code + '; '
print(str[:-2])

_(9)

maxl= 0
for code in dl_cw:
    if(len(dl_cw[code])) > maxl:
        maxc= code
        maxl= len(dl_cw[code])
print('A legtöbb szó a(z)', maxc, 'kódhoz tartozik.')
print('A szavak:', ', '.join(dl_cw[maxc]))