J'écris un algorithme d'acceptation différé pour les médecins et les hôpitaux, mais avant d'y arriver, j'ai besoin de mes dictionnaires à présenter de manière correcte.
Actuellement, j'ai un dictionnaire de médecins contenant un dictionnaire imbriqué avec leur classement de leur classement de HÔPITAUX: P>
{'Doctor_7': {'Hospital_6': 4.0, 'Hospital_3': 8.0, 'Hospital_1': 10.0, 'Hospital_8': 1.0, 'Hospital_2': 9.0, 'Hospital_10': 5.5, 'Hospital_5': 5.5, 'Hospital_7': 2.0, 'Hospital_4': 7.0, 'Hospital_9': 3.0}
3 Réponses :
{'Doctor_7': OrderedDict([(1.0, 'Hospital_8'), (2.0, 'Hospital_7'), (3.0, 'Hospital_9'), (4.0, 'Hospital_6'), (5.5, 'Hospital_5'), (7.0, 'Hospital_4'), (8.0, 'Hospital_3'), (9.0, 'Hospital_2'), (10.0, 'Hospital_1')])}
Cela goutte silencieusement les hôpitaux avec la même note (Hospital_10 et Hospital_5). Et lequel est conservé n'est même pas la même chose entre les sous-versions de Python.
Merci pour votre réponse FHTMITCHELL! Je vais regarder dans le problème des hôpitaux abandonnés.
Vous pouvez utiliser l'utilisateur compréhension dict pour y parvenir:
{'Doctor_7': {4.0: 'Hospital_6', 8.0: 'Hospital_3', 10.0: 'Hospital_1', 1.0: 'Hospital_8', 9.0: 'Hospital_2', 5.5: 'Hospital_5', 2.0: 'Hospital_7', 7.0: 'Hospital_4', 3.0: 'Hospital_9'}}
Merci pour votre réponse rajan! Je vais également examiner votre lien sur la compréhension du dictionnaire. Très appréciée!
Depuis les deux solutions jusqu'à présent, la négligence prenant soin des touches en double (la même note donnée à plusieurs hôpitaux), une solution qui fait.
Il a l'inconvénient que chaque évaluation pointe sur une liste d'hôpitaux avec cette note, au lieu du nom directement, même si cette liste a une longueur d'une. p> mais depuis que vous avez mentionné un fichier de données, s'il s'agit d'un Vous pouvez faire quelque chose comme ceci: P>
pandas.dataframe code> qui ressemblait à ceci: p>
df.apply(lambda col: col.reset_index()\
.groupby(col.name)["index"]\
.apply(lambda x: x.tolist()))
# Doctor_1 Doctor_7
# 1.0 [Hospital_1] [Hospital_8]
# 2.0 NaN [Hospital_7]
# 3.0 [Hospital_2, Hospital_9] [Hospital_9]
# 4.0 [Hospital_6, Hospital_7] [Hospital_6]
# 5.5 NaN [Hospital_10, Hospital_5]
# 6.0 [Hospital_4] NaN
# 7.0 NaN [Hospital_4]
# 8.0 [Hospital_10, Hospital_5] [Hospital_3]
# 9.0 [Hospital_8] [Hospital_2]
# 10.0 [Hospital_3] [Hospital_1]
Astuce: compréhension du dictionnaire. Astuce 2: Les dictionnaires ordinaires ne peuvent pas être triés.
Comment faites-vous face au fait qu'un médecin peut donner la même note à plusieurs hôpitaux?
Le classement en double est définitivement un problème que je vais examiner. De préférence, les hôpitaux ne doivent pas être abandonnés.