J'ai ce dictionnaire actuel: et je voudrais obtenir ce dictionnaire (avec la clé comme float): p> Je sais que je peux itérer sur la clé et recréer un nouveau dict comme celui-ci: p> mais je m'attends à ce qu'il soit possible de convertir la clé dicale "en ligne" (sans avoir à avoir Pour recréer un nouveau dict) ... p> Quelle est la méthode la plus efficace pour le faire? P> P>
3 Réponses :
Je vous suggère d'utiliser une compréhension dictionnaire
J'espère qu'il serait possible de convertir la clé dict "en ligne" ( sans avoir à recréer un nouveau dict fort>) ... P>
Quelle est la méthode forte> la plus efficace fore> pour le faire? P>
Sauf si cela ne compte matériellement à votre heure d'exécution et que vous avez le temps de perdre des objets de profilage et d'essayer diverses configurations, je vous recommande vivement de créer un deuxième dict utilisant une compréhension dicale et de vous concentrer sur des préoccupations réellement pertinentes: car les points de vue des dictus sont " en direct "Mise à jour de la dict comme vous, itérer, les clés peuvent avoir des effets secondaires étranges, par exemple Vous vous retrouverez peut-être itérateur deux fois au fur et à mesure que vous idiotez d'abord les clés d'origine, puis essayez les touches que vous avez ajoutées; ou l'itération pourrait être entièrement car les suppressions conduisent au compactage de stockage interne et que l'itérateur est invalidé. p>
afin de modifier les types de clés sans créer de nouveau dict, vous devez d'abord la première copie em> Les touches d'une liste, puis itérer que et déplacent les valeurs em> d'une touche à une autre: p>
xxx pré> Cependant, à cause des suppressions qui peuvent ou non Soyez plus efficace que la création d'un nouveau dict avec la disposition appropriée, l'optimisation »serait tout sauf. P> blockquote>
Utiliser la compréhension:
new_dict = { float(k): v for k, v in mydict.items() }
Utilisez simplement une compréhension dict simple:
my_dict = mydic = {"123.23": 10.50, "45.22": 53, "12": 123} # Utilisation de la compréhension DICT. my_dict = {float (i): j pour i, j dans my_dict.items ()} print (my_dict) # {123.23: 10.5, 45.22: 53, 12.0: 123} code>