这应该做到:def max_visited_speciality(patient_medical_speciality_list, medical_speciality):
# count each speciality patients
counts = {}
for _, speciality in zip(patient_medical_speciality_list[::2], patient_medical_speciality_list[1::2]):
counts[speciality] = counts.get(speciality, 0) + 1
# get most visited speciality by count of it's patients
most_visited_speciality = max(medical_speciality, key=lambda e: counts.get(e, 0))
# return value of most visited speciality
return medical_speciality[most_visited_speciality]
# provide different values in the list and test your program
patient_medical_speciality_list = [301, 'P', 302, 'P', 305, 'P', 401, 'E', 656, 'E']
medical_speciality = {"P": "Pediatrics", "O": "Orthopedics", "E": "ENT"}
speciality = max_visited_speciality(patient_medical_speciality_list, medical_speciality)
print(speciality)
输出
^{pr2}$
首先,您需要按专业对每个患者进行计数:# count each speciality patients
counts = {}
for _, speciality in zip(patient_medical_speciality_list[::2], patient_medical_speciality_list[1::2]):
counts[speciality] = counts.get(speciality, 0) + 1
在那之后,counts = {'E': 2, 'P': 3},因为有3名患者访问了“p”,2名患者访问了“E”。然后将这些值用作max中的关键点:most_visited_speciality = max(medical_speciality, key=lambda e: counts.get(e, 0))
这将返回'P'访问次数最多的专业,然后返回medical_speciality字典中{}的值return medical_speciality[most_visited_speciality]
在本例中:'Pediatrics'。在
进一步文档到max。在
dict的get方法的文献