kodok=[2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9]
betuk=[chr(b) for b in range(97,123)]

def betu_kodja(b):
    return kodok[betuk.index(b)]

def szo_kodja(sz):
    kod=''
    for betu in sz:
        kod+=str(betu_kodja(betu))
    return kod

def kod_szavak(k):
    return [szavak[i] for i in range(0,len(kodok)) if kodok[i]==k]

def F1():
    print('1. feladat - betű és kódja')
    betu=input('Kérek egy betűt: ')
    print('A megadott betű kódja:',betu_kodja(betu))

def F2():
    print('\n2. feladat - szó és kódolása')
    szo=input('Kérek egy szót: ')
    print('A megadott szó kódja:',szo_kodja(szo))

def F3():
    # 3. feladat - adatok beolvasása...
    global szavak
    szavak=[sz.strip() for sz in open('szavak.txt','r')]

def F4():
    print('\n4. feladat - leghosszabb szó')
    rendezett=sorted(szavak,key=lambda sz:len(sz),reverse=True)
    print(f'A leghosszabb szó: {rendezett[0]}, hossza: {len(rendezett[0])}')

def F5():
    print('\n5. feladat - rövid szavak száma (5 karakter vagy kevesebb)')
    rovidek=[szo for szo in szavak if len(szo)<6]
    print(len(rovidek))

    # db=0
    # for sz in szavak:
    #    if len(sz)<6:
    #        db+=1

def F6():
    # 6. feladat - szavak kódjai (kodok.txt)
    fki=open('kodok.txt','w')
    global kodok
    kodok=[szo_kodja(szo) for szo in szavak]
    [print(kod,file=fki) for kod in kodok]
    fki.close()

def F7():
    print('\n7. feladat - kódhoz tartozó szavak')
    kod=input('Kérek egy kódot: ')
    print('A kódhoz tartozó szavak:',end=' ')
    [print(szo,end=' ') for szo in kod_szavak(kod)]   
    print()

def F8_9():
    print('\n8. feladat - mely kódokhoz tartozik több szó is')
    maxi={}
    maxh=0
    for kod in set(kodok):
        lst=kod_szavak(kod)
        if len(lst)>1:
            if len(lst)>maxh:
                maxi={kod:lst}
                maxh=len(lst)
            for szo in lst:
                print(f'{szo} : {kod};',end=' ')
    print()
    print('\n9. feladat - melyik kódnak megfelelő szóból van a legtöbb')
    for key in maxi:
        print('kód: ',key)
    print('Hozzá tartozó szavak:',end=' ')
    
    for maxi_sz in maxi.values():
        for sz in maxi_sz:
            print(sz,end=' ')
    print()

F1()
F2()
F3()
F4()
F5()
F6()
F7()
F8_9()
