←← →→

C99.hu

Egy gondolkodtató gyakorló feladatokból álló gyűjtemény. Főbb témák a nyelvspecifikus programozás és a matematika.

Főoldal

Sztálin leghűtlenebb tanácsadója

Python
Nehézség: Gondolkodtató

Sztálin egy titkos fájlból szeretné kiszűrni a leghűtlenebb tanácsadóját, majd a maradék adatokat rendezett formában kimenteni egy új fájlba. A bemenet soronként egy név és egy hűségérték vesszővel elválasztva. A kisebb hűségérték jelenti a hűtlenebb tanácsadót.

input_file = 'tanacsadok.txt'
output_file = 'sorted_tanacsadok.txt'

# A feladat szerint a rekordokat egy fájlból kell beolvasni,
# majd a hűség szerint csökkenő sorrendbe rendezve új fájlba írni.
# A leghűtlenebb tanácsadó, vagyis a legkisebb hűségértékű sor kimarad.


def parse_record(line):
name, loyalty = line.rsplit(',', 1)
return name.strip(), int(loyalty.strip())


def sort_and_filter(records):
parsed = [parse_record(line) for line in records]
parsed.sort(key=lambda item: item[1], reverse=True)

lowest_loyalty = min(item[1] for item in parsed)
return [item for item in parsed if item[1] != lowest_loyalty]


def write_output(filename, rows):
with open(filename, 'w', encoding='utf-8') as file:
for name, loyalty in rows:
file.write(f'{name},{loyalty}\n')


with open(input_file, 'r', encoding='utf-8') as file:
records = [line.strip() for line in file if line.strip()]

filtered = sort_and_filter(records)
write_output(output_file, filtered)
print(output_file)


MegoldásA sorrend csökkenő hűségérték szerint kell legyen. A legkisebb hűségértékű sorok kimaradnak, így a kimeneti fájl tartalma például:
Administrative Expert,98789
Administrative Brute,79879
Administrative Chemist,46548
Administrative Reformer,46546
Administrative Fighter,4654
Administrative Demagogue,4564
Administrative Capitalist,9789
Administrative Gentleman,6546
Administrative Enthusiast,789
Administrative Crusader,687
Administrative of Industry,464
Administrative Expert,464
Administrative Engineer,67