#!/usr/bin/python3

def create_teams_file():
	"""Δημιουργεί το αρχείο teams.dat με δεδομένα ομάδων."""
	content = """Teams,Games,Wins,Losses,Draws,Goals,Allowed,Points
Arsenal,38,26,9,3,79,36,87
Liverpool,38,24,8,6,67,30,80
Manchester United,38,24,5,9,87,45,77
Newcastle,38,21,8,9,74,52,71
Leeds,38,18,12,8,53,37,66"""

	with open("teams.dat", "w") as f:
		f.write(content)

def load_teams(filename):
	"""Διαβάζει το αρχείο και επιστρέφει λίστα με λεξικά."""
	teams=[]
	with open(filename,'r')as f:
		#Διαβάζουμε την πρώτη γράμμη (επικεφαλίδες) για να την προσπεράσουμε
		headers = f.readline()

		for line in f:
			#Κόβουμε την γραμμή όπου υπάρχει κόμμα (CSV fromat)
			parts = line.strip().split(',')

			#Δημιουργούμε λεξικό για κάθε ομάδα με τα κατάλληλα στοιχεία
			team_dict = {
				"Team":[parts[0],	#Όνομα ομάδας
				"Goals":int(parts[5]),	#Γκολ υπέρ (θέση 5)
				"GoalsAllowed":int(parts[6])	#Γκολ κατά (θέση 6)
				"Points":int(parts[7])	#Βαθμοί (θέση 7)
			}

			teams.append(team_dict)
	return teamss

def main():
	#Δημιουργία του αρχείου
	create_teams_file()

	#Φόρτωση των δεδομέων στη μνήμη

	try:
		teams_data = loads_teams("teams.dat")

		#Ερώτημα: Ομάδα με τη μικρότερη διαφορά τερματών
		#Χρησιμοποιούμε τη min() με κλειδί την απόλυτη διαφορά (abs)
		# ab(Goals - Allowed) σημαίνει πόσο είναι η επίθεση με την αμύνα
		min_diff_team = min(teams_data, key=lambda x: abs(x["Goals"] -x["GoalsAllowed"]))
		print(f"Ομάδα με τη μικρότερη διαφορά γκολ: {min_diff_team['Team']}"

		#Ερώτημα: Ταξινόμηση βάσει βαθμολογίας
		#sorted() με κλειδί τους. reverse=True σημαίνει φθίνουσα σειρά (από τον μεγαλύτερο στον μικρότερο)
		sorted_teams=sorted(teams_data, key=lambda x: x["Points"], reverse=True)

		print("\n--- Βαθμολογία (Ταξινομημένη) ---")
		for t in sorted_teams:
			print(f"{t['Team']}: {t['Points']} βαθμοί")

	excepty Exception as e:
		print(f"Σφάλμα: {e}")

if __name__ == "__main__":
	main()
