Розрахувати рейтинг означає знайти числовий відповідник елементам списку (наприклад, їхню частоту), і відсортувати список за числовими значеннями. Зазвичай це означає, що потрібно сортувати числа, одночасно змінюючи порядок текстових (або числових) елементів.
Вхідні дані задач містяться у текстових файлах.
Задача 1. У місті є 100 переможців олімпіад та конкурсів з 10 шкіл (за номерами 1-10, файл schools.txt). Необхідно визначити рейтинг цих шкіл
f=open("schools.txt")
a=f.read()
a=a.split()
schools=[0]*10
for element in a:
k=int(element)
schools[k-1]+=1
print(schools)
f.close()
Варіант зі словником
file=open("schools.txt","r")
schools=[]
line = file.readline()
while line:
for element in line.split():
schools.append(int(element))
line = file.readline()
print(schools)
slovnyk={}
for element in schools:
if element not in slovnyk:
slovnyk[element]=1
else:
slovnyk[element]+=1
print(slovnyk)
for element in slovnyk:
print(element, slovnyk[element])
Задача 2. На спортивних змаганнях оцінку виставляють 10 суддей. Найбільша та найменша оцінки відкидаються, а з решти обраховується середнє значення, що й є оцінкою за виступ. Порівняти 2 середні бали: з відкиданням найбільшої та найменшої та без. файл sport.txt
file=open("sport.txt","r")
line=file.readline()
judge=[]
while line:
judge.append(int(line))
print(line)
line=file.readline()
print(judge)
suma=0
for element in judge:
suma += element
print(suma, suma/10)
suma=suma-max(judge)-min(judge)
print(suma, suma/8)
Задача 3. У змаганнях беруть участь 10 учасників. Кожному з них обчислити бал за чесною схемою. Надрукувати рейтинг спортсменів. Порахувати середній бал без відкидання крайніх оцінок. Порівняти отримані рейтинги. Файлchamp.txt
Задача для самостійного розв'язання.
Потрібно зчитати назви банків та відповідні курси обміну
Далі - знайти максимальні та мінімальні значення курсів продажу та покупки валюти
Варто скористатись стандартними функціями:
max(spysok) - найбільший елемент списку
spysok.index(element) - номер елемента списку
index(max(spysok)) - номер найбільшого елемента списку
Розв'язки самостійних задач:
file=open("champ.txt","r")
all=[]
for i in range(10):
judge=[]
for y in range(10):
line=file.readline()
judge.append(int(line))
print(judge)
all.append(judge)
print(all)
sportsman1=[]
sportsman2=[]
for zapys in all:
suma=0
for element in zapys:
suma += element
print(suma, suma/10)
sportsman1.append(suma/10)
suma=suma-max(zapys)-min(zapys)
print(suma, suma/8)
sportsman2.append(suma/8)
print(sportsman1,sportsman2)
file=open("surnames.txt","r")
surnames=[]
for y in range(10):
line=file.readline()
surnames.append(line.strip())
print(surnames)
for y in range(10):
for i in range(9):
if sportsman1[i]>sportsman1[i+1]:
k=sportsman1[i]
sportsman1[i]=sportsman1[i+1]
sportsman1[i+1]=k
k=surnames[i]
surnames[i]=surnames[i+1]
surnames[i+1]=k
print(surnames)
===============================================
file0=open("bank.txt","r")
file1=open("buy.txt","r")
file2=open("sale.txt","r")
file3=open("buy_euro.txt","r")
file4=open("sale_euro.txt","r")
line=file0.readline()
banks=[[],[],[],[],[]]
while line:
banks[0].append(line.strip())
line=file1.readline()
banks[1].append(float(line))
line=file2.readline()
banks[2].append(float(line))
line=file3.readline()
banks[3].append(float(line))
line=file4.readline()
banks[4].append(float(line))
line=file0.readline()
print(banks)
for element in banks[0]:
if banks[0].index(element) == banks[3].index(max(banks[3])):
print(max(banks[3]), element)
if banks[0].index(element) == banks[2].index(min(banks[2])):
print(min(banks[2]),element)
diff=[]
for nomer in range(len(banks[0])):
diff.append(banks[3][nomer]-banks[2][nomer])
for element in banks[0]:
if banks[0].index(element) == diff.index(max(diff)):
print(max(diff), element)