"""
2013. május: Választások
@author Klemand66
"""

print("\n1. feladat\n")

jogdb=12345

jeloltek=[]
betxt = open("szavazatok.txt")

for sor in betxt:
    darsor=sor.strip().split()
    adatsor=[int(darsor[0]),int(darsor[1]),darsor[2]+" "+darsor[3],darsor[4]]
    # 0: körzet 1: szavazatok száma 2: név 3: támogató rövidítése                 
    jeloltek.append(adatsor)
    
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

print(f'A helyhatósági választáson {len(jeloltek)} képviselőjelölt indult.')



print("\n3. feladat\n")

vnev=input("Kérem egy képviselő nevét. A vezetékneve: ")
unev=input("Az utóneve: ")
nev=vnev+" "+unev

aktjeloltek=list(filter(lambda jelolt:jelolt[2]==nev ,jeloltek))

if len(aktjeloltek)>0: # tudjuk, hogy most a szűrt lista max. egy elemű lesz
    print(f'{aktjeloltek[0][2]} {aktjeloltek[0][1]} szavazatot kapott.')
else:
    print("Ilyen nevű képviselőjelölt nem szerepel a nyilvántartásban!")
    


print("\n4. feladat\n")

szavazatok=list(map(lambda i:jeloltek[i][1],range(len(jeloltek))))
szavdb=sum(szavazatok)
print(f'A választáson {szavdb} állampolgár, a jogosultak {100*szavdb/jogdb:.2f}%-a  vett részt.')



print("\n5. feladat\n")

print("Az egyes pártokra leadott szavazatok aránya:")

rovlista=["GYEP", "HEP", "TISZ", "ZEP","-"]
partlista=["Gyümölcsevők Pártja", "Húsevők Pártja", "Tejivók Szövetsége",
           "Zöldségevők Pártja", "Független jelöltek"]

for i in range(len(rovlista)):
    aktindexek=list(filter(lambda j: jeloltek[j][3]==rovlista[i] ,range(len(jeloltek))))
    aktszavazatok=list(map(lambda j:jeloltek[j][1] ,aktindexek))
    aktszavdb=sum(aktszavazatok)
    print(f'{partlista[i]} = {100*aktszavdb/szavdb:.2f}%')



print("\n6. feladat\n")

def tamogato(rov):
    if rov=="-":
        return "független"
    else:
        return rov

maxszavjelolt=max(jeloltek,key=lambda jelolt:jelolt[1])
maxszav=maxszavjelolt[1]

print(f'A legtöbb szavazatot ({maxszav}) kapott jelöltek:')

aktjeloltek=list(filter(lambda jelolt: jelolt[1]==maxszav ,jeloltek))
for jelolt in aktjeloltek:
    print(f'{jelolt[2]} {tamogato(jelolt[3])}')



print("\n7. feladat\n")

vkdb=8

kitxt = open("kepviselok.txt","w")

for i in range(1,vkdb+1):
    aktjeloltek=list(filter(lambda jelolt: jelolt[0]==i ,jeloltek))
    kepviselo=max(aktjeloltek,key=lambda jelolt: jelolt[1])
    kitxt.write(f'{i} {kepviselo[2]} {tamogato(kepviselo[3])}\n') 
            
kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.")


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
