0
votes

Comment convertir toutes les touches de dict de Str pour flotter

J'ai ce dictionnaire actuel: xxx

et je voudrais obtenir ce dictionnaire (avec la clé comme float): xxx

Je sais que je peux itérer sur la clé et recréer un nouveau dict comme celui-ci: xxx

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) ...

Quelle est la méthode la plus efficace pour le faire?


1 commentaires

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}


3 Réponses :


1
votes

Je vous suggère d'utiliser une compréhension dictionnaire , qui est facile à comprendre, comme suit: xxx


0 commentaires

-1
votes

J'espère qu'il serait possible de convertir la clé dict "en ligne" ( sans avoir à recréer un nouveau dict ) ...

Quelle est la méthode la plus efficace pour le faire?

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é.

afin de modifier les types de clés sans créer de nouveau dict, vous devez d'abord la première copie Les touches d'une liste, puis itérer que et déplacent les valeurs d'une touche à une autre: xxx

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.


0 commentaires

1
votes

Utiliser la compréhension:

new_dict =  { float(k): v for k, v in mydict.items() }


0 commentaires