Comment convertir une chaîne de valeurs à partir d'un dictionnaire, dans int/float types de données?
J'ai une liste de dictionnaires comme suit:
list = [ { 'a':'1' , 'b':'2' , 'c':'3' }, { 'd':'4' , 'e':'5' , 'f':'6' } ]
Comment puis-je convertir les valeurs de chaque dictionnaire à l'intérieur de la liste de int/float?
Il devient donc:
list = [ { 'a':1 , 'b':2 , 'c':3 }, { 'd':4 , 'e':5 , 'f':6 } ]
Grâce.
- Il est très déconseillé de nom de variables, comme la builtin types. J'espère que c'est juste pour les fins de l'exemple, mais si pas, vous devriez éviter ce dans votre code.
- Veuillez corriger votre code de
list = [ { 'a':1 , 'b':2 , 'c':3 }}, { 'd':4 , 'e':5 , 'f':6 } ]
àlist = [ { 'a':1 , 'b':2 , 'c':3 }, { 'd':4 , 'e':5 , 'f':6 } ]
- Juste écrit les codes sur place.. désolé abt qui. editted.
InformationsquelleAutor siva | 2011-03-15
Vous devez vous connecter pour publier un commentaire.
Lui donne un casting comme un int au lieu d'une chaîne de caractères.
Gotta love interprétations de la liste.
(remarque: pour Python 2 uniquement code, vous pouvez utiliser "iteritems" au lieu de "éléments")
Si c'est votre conception exacte, vous pouvez parcourir la liste et de modifier les dictionnaires.
Si vous avez quelque chose de plus général, alors vous aurez à faire une sorte de mise à jour récursif sur le dictionnaire. Vérifier si l'élément est un dictionnaire, dans ce cas, utilisez la mise à jour récursif. Si il est capable d'être converti en float ou int, convertir et modifier la valeur dans le dictionnaire. Il n'y a pas de fonction intégrée pour cela et il peut être assez moche (et non pythonic car il nécessite généralement appel isinstance).
Pour gérer la possibilité de
int
,float
, et vider les valeurs de chaîne, je voudrais utiliser une combinaison d'une compréhension de liste, dictionnaire, la compréhension, ainsi que les expressions conditionnelles, comme indiqué:Toutefois dictionnaire interprétations ne sont pas ajoutés à Python 2 jusqu'à la version 2.7. Il peut encore être fait dans les versions antérieures comme une expression unique, mais doit être écrite à l'aide de la
dict
constructeur comme suit:Note que de toute façon cela crée un nouveau dictionnaire des listes, au lieu de modifier l'original en place (ce qui devrait être fait différemment).
if
expression de traiter avec eux comme je l'ai indiqué dans ma réponse révisée.... for k...
, dictionnaire des compréhensions besoin de Python 2.7+ 3,1+, de sorte que l'aide de versions antérieures pourraient être à l'origine du problème.int(x)
dans @Powertieke de réponse avec l'expression conditionnelle similaire à ce qui est dans la mienne pour se débarrasser du dictionnaire, la compréhension et le résultat dans quelque chose à utiliser dans les précédentes versions de Python.Si vous vous décidez pour une solution intérimaire "à la place", vous pouvez prendre un coup d'oeil à celui-ci:
Btw, commande de clés est pas conservé parce que c'est la façon standard de dictionnaires de travail, c'est à dire sans le concept d'ordre.