# inicializálás (kezdőállapot kialakítása)
# GLOBÁLIS ADATOK
#az input01.txt esetben egy sorban egy adat ----> "sima" lista: ehhez kell az adatok lista
#az input02.txt esetben egy sorban több, de ugyanolyan típusú adat ----> "sima" mátrix (listák listája):
#  ehhez kell a matrix lista
#az input03.txt esetben egy sorban több és különböző típusú adat ----> "vegyes" mátrix (listák listája):
#  ehhez kell a vegyes_matrix lista
adatok = []
matrix = []
vegyes_matrix = []
szotar=dict()  # {}

def beolvasas01():
    # "klasszikus" megoldás:
    fbe = open('input01.txt', 'r')

    for sor in fbe:
        sor = int(sor.strip())
        adatok.append(sor)
    print('"Klasszikusan" készülő lista:\n', adatok)
    fbe.close()

    print('********************************************************')

    # "gyors" vagy "rövid" megoldás:
    adatok2 = [int(elem.strip()) for elem in open('input01.txt', 'r').readlines()]
    print('"Gyorsan" készülő lista:\n', adatok2)

    print('********************************************************')
    print('********************************************************')

def beolvasas02():
    # "klasszikus" megoldás:
    fbe = open('input02.txt', 'r')

    for sor in fbe:
        sor = sor.strip().split()
        sor = list(map(int, sor))
        matrix.append(sor)

    print('"Klasszikusan" készülő mátrix:\n', matrix)

    fbe.close()

    print('********************************************************')

    # "gyors" vagy "rövid" megoldás:
    matrix2 = [list(map(int, sor.strip().split())) for sor in open('input02.txt', 'r').readlines()]
    print('"Gyorsan" készülő mátrix:\n', matrix2)

    print('********************************************************')
    print('********************************************************')

def beolvasas03():
    # "klasszikus" megoldás:
    fbe = open('input03.txt', 'r')

    for sor in fbe:
        sor = sor.strip().split()
        for i in range(len(sor)):
            if sor[i].isdigit():
                sor[i] = int(sor[i])
        vegyes_matrix.append(sor)

    print('"Klasszikusan" készülő "vegyes" mátrix:\n', vegyes_matrix)

    fbe.close()

    print('********************************************************')

    # "gyors" vagy "rövid" megoldás:
    matrix_temp = [sor.strip().split() for sor in open('input03.txt', 'r').readlines()]
    vegyes_matrix2 = [[int(matrix_temp[i][j]) if matrix_temp[i][j].isdigit() else matrix_temp[i][j] for j in
                       range(len(matrix_temp[i]))] for i in range(len(matrix_temp))]
    print('"Gyorsan" készülő "vegyes" mátrix:\n', vegyes_matrix2)

def beolvasas04():
    # "klasszikus" megoldás:
    fbe = open('input04.txt', 'r')
    
    keys=set()
    temp=[]
    for sor in fbe:
            
        sor=sor.strip().split()
        
        if sor[0] in keys:
            temp.append(sor[1:])
            szotar[sor[0]]=temp
        else:
            temp=[]
            temp.append(sor[1:])
            szotar[sor[0]]=temp
            keys.add(sor[0])
    
    fbe.close()
    
    print('"Klasszikusan" készülő "szótár":\n', szotar)
  
#----------------------------------------------------------------------------

beolvasas01()  #önálló parancs, olyan mintha a Pythont megtanítottuk volna vmire
beolvasas02()
beolvasas03()
beolvasas04()
