2012-02-10 14 views

Odpowiedz

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

Należy zauważyć, że ['iteritems'] (https://docs.python.org/2/library/stdtypes.html#dict.iteritems) [zniknął] (http://stackoverflow.com/questions/10458437/ what-is-the-difference-between-dict-items-and-dict-iteritems) w [Python 3] (https://www.python.org/download/releases/3.0/). Zamiast tego użyj ['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

Można użyć dictionary comprehension :

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

gdzie d jest słownikiem z ciągami.

+0

tylko wtedy, gdy używasz python 3 –

+1

@IvanVirabyan Możesz również użyć zrozumienia słownika w python 2.7, ponieważ zostały one przeniesione. – jcollado

+1

W rzeczywistości ten kod działa tylko w Pythonie 2.7. 'dict.iteritems' zniknął w 3, ponieważ' dict.items' nie tworzy już listy. – lvc

Powiązane problemy