2012-02-10 2 views

risposta

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

Nota che ['iteritems'] (https://docs.python.org/2/library/stdtypes.html#dict.iteritems) [è andato] (http://stackoverflow.com/questions/10458437/ che cos'è-la-differenza-tra-dict-items-and-dict-iteritems) in [Python 3] (https://www.python.org/download/releases/3.0/). Usa invece ['items()'] (https://docs.python.org/3.7/library/stdtypes.html#dict.items). –

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

È possibile utilizzare un dictionary comprehension :

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

dove d è il dizionario con le stringhe.

+0

solo se si utilizza python 3 –

+1

@IvanVirabyan È inoltre possibile utilizzare le Comprensioni del dizionario in python 2.7 poiché sono stati sottoposti a backport. – jcollado

+1

Infatti, quel codice funzionerà solo in Python 2.7. 'dict.iteritems' è finito in 3, dal momento che' dict.items' non crea più una lista. – lvc