2012-02-10 13 views

Respuesta

11
dict_with_ints = dict((k,int(v)) for k,v in dict_with_strs.iteritems()) 
+1

Tenga en cuenta que ['iteritems'] (https://docs.python.org/2/library/stdtypes.html#dict.iteritems) [se ha ido] (http://stackoverflow.com/questions/10458437/ what-is-the-difference-between-dict-items-and-dict-iteritems) en [Python 3] (https://www.python.org/download/releases/3.0/). Use ['items()'] (https://docs.python.org/3.7/library/stdtypes.html#dict.items) en su lugar. –

2
>>> d = {'Blog': '1', 'Discussions': '2', 'Followers': '21', 'Following': '21', 'Reading': '5'} 
>>> dict((k, int(v)) for k, v in d.iteritems()) 
{'Blog': 1, 'Discussions': 2, 'Followers': 21, 'Following': 21, 'Reading': 5} 
9

Se puede utilizar un dictionary comprehension :

{k:int(v) for k, v in d.iteritems()} 

donde d es el diccionario con las cadenas.

+0

solo si usa python 3 –

+1

@IvanVirabyan También puede usar las comprensiones de diccionario en Python 2.7 ya que han sido transferidas. – jcollado

+1

De hecho, ese código solo funcionará en Python 2.7. 'dict.iteritems' se ha ido en 3, ya que' dict.items' ya no crea una lista. – lvc

Cuestiones relacionadas