Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 23, 2016 12:39:01

nealorven
Зарегистрирован: 2016-04-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка

Задача:
Напишите функцию фильтрации студентов по средней оценке (так чтобы
функция возвращала всех студентов выше заданного в параметрах
функции среднего балла). Примерная схема работы функции: создание
пустого массива, куда будут добавляться все студенты, прошедшие
фильтрацию; запуск цикла, в каждой итерации которого необходимо
считать среднюю оценку текущего студента и сравнивать с тем
значением, что передано в качестве параметра.

Изначальный код:

groupmates = [
	{
		"name": "StudentOne",
		"group": "111",
		"age": 21,
		"marks": [4, 3, 5, 5, 4]
	},
	{
		"name": "StudenTwo",
		"group": "111",
		"age": 22,
		"marks": [3, 2, 3, 4, 3]
	},
	{
		"name": "StudentThree",
		"group": "111",
		"age": 23,
		"marks": [3, 5, 4, 3, 5]
	},
	{
		"name": "StudentFour",
		"group": "111",
		"age": 24,
		"marks": [5, 5, 5, 4, 5]
	}
]
def print_students(students):
	print "name".ljust(15), "group".ljust(8), "age".ljust(8), "marks".ljust(20)
	for student in students:
		print student["name"].ljust(15), student["group"].ljust(8), \
		str(student["age"]).ljust(8), str(student["marks"]).ljust(20)
	print "\n"
print_students(groupmates)

Офлайн

#2 Апрель 23, 2016 13:38:22

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Сортировка

filter(lambda x: sum(x.get("marks"))/len(x.get("marks")) > 4, groupmates)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version