2015-08-29 1 views
2

У меня есть словарь ключей: список пар. Списки - это списки строк, но они должны быть целыми числами. Вот пример того, что я начинаю с:Convert key: список строк к ключу: список целых чисел в словаре

dictionary = { 
    "P4021a": ["1","2","3","4","5"], 
    "P4019a": ["1","2","3","4","5"], 
    "P4013a": ["1","2","3","4","5"] 
} 

Я пытаюсь добиться следующего:

dictionary = { 
    "P4021a": [1,2,3,4,5], 
    "P4019a": [1,2,3,4,5], 
    "P4013a": [1,2,3,4,5] 
} 

Вот что я пытался до сих пор:

new_dict = {} 
for key in dictionary.keys(): 
    new_dict[key] = dictionary[int(key)] 

Я получаю сообщение об ошибке, указывающее, что функция int() не может работать в списке. Поэтому я также попытался добавить итерацию по каждому списку.

new_dict = {} 
for key in dictionary.keys(): 
    new_dict[key] = dictionary[[int(value) for value in dictionary.values() for i in range(5)]] 

Я также попытался:

new_dict = {} 
for key in dictionary.keys(): 
    new_dict[key] = dictionary[map(int,key)] 

Любая помощь приветствуется.

ответ

0
for key in dictionary: 
    dictionary[key] = [int(val) for val in dictionary[key]] 
+0

ли немного объяснения о коде. Обычно сбрасываются кодовые отвалы. –

2
for i in dictionary: 
    dictionary[i]=map(int,dictionary[i]) 
print dictionary 

Вы можете просто map к int.

В Python 3, как указывал Bhargav, map возвращает map object вместо list поэтому вам нужно использовать

list(map(int,dictionary[i])) 
+1

Эй, vks, обратите внимание, что такой подход возможен только в Python2, так как в Py3 'map' возвращает mapObject. –

Смежные вопросы