Подскажите с задачей по словарям (для новичков)
Есть словарь с данными о работниках. Указаны возраст, пол и ЗП. Как вывести самых старших/младших работников, или с самой высокой зп - я понимаю.
Но каким должен быть код, чтобы определялись только мужчины(male) с самой высокой ЗП? В этом случае должны быть: Тихонов, Щедров.
members = {
'Сёмин': {'age': 30, 'sex': 'male', 'zp': 1700},
'Колесникова': {'age': 28, 'sex': 'female', 'zp': 5000},
'Тихонов': {'age': 24, 'sex': 'male', 'zp': 2500},
'Власова': {'age': 26, 'sex': 'female', 'zp': 2500},
'Щедров': {'age': 31, 'sex': 'male', 'zp': 2500}
}
Ответы (2 шт):
Автор решения: Hihikompry
→ Ссылка
Отфильтровываем только мужчин:
males_only = {member_name:member_data for member_name,member_data in members.items() if member_data["sex"]="male"}
Автор решения: tohatsu
→ Ссылка
Вот еще вариант, по легче.
members = {
'Сёмин': {'age': 30, 'sex': 'male', 'zp': 1700},
'Колесникова': {'age': 28, 'sex': 'female', 'zp': 5000},
'Тихонов': {'age': 24, 'sex': 'male', 'zp': 2500},
'Власова': {'age': 26, 'sex': 'female', 'zp': 2500},
'Щедров': {'age': 31, 'sex': 'male', 'zp': 2500}
}
males = {}
for key in members.keys():
if members[key]["sex"] == 'male':
males[key] = members[key]
maxim = 0
maxl = []
for key in males:
if males[key]["zp"]>maxim:
maxim = males[key]["zp"]
maxl = [key]
elif males[key]["zp"] == maxim:
maxl.append(key)a
print(maxl)