2014-04-04 61 views
0

列出整數我有一本字典,如:轉換字符串列表在Python

a={ 
    'sig2/Bit 2': ['0', '0', '1'], 
    'sig1/Bit 1': ['1', '0', '1'] 
    } 

我想將它轉換喜歡:

a={ 
    'sig2/Bit 2': [0, 0, 1], 
    'sig1/Bit 1': [1, 0, 1] 
    } 

請幫助我。

+0

[轉換所有字符串在列表中INT](HTTP可能重複:// stackoverflow.com/questions/7368789/convert-all-strings-in-a-list-to-int) –

回答

3

我不會爲你提供完整的答案但如何做到這一點相當的指導。這裏是一個例子:

>>> d = ['0', '0', '1'] 
>>> print [int(i) for i in d] 
[0,0,1] 

希望這應該足以指導你弄清楚這一點。
提示:通過字典迭代和爲每個鍵/值對做到這一點。好運

0
for i in a.keys(): 
    a[i] = [int(j) for j in a[i]] 
0

可能有更好的方法,但這裏是一個。

for key in a: 
    a[key] = [int(x) for x in a[key]]; 
0

嘗試了這一點

In [54]: dict([(k, [int(x) for x in v]) for k,v in a.items()]) 
Out[54]: {'sig1/Bit 1': [1, 0, 1], 'sig2/Bit 2': [0, 0, 1]} 
0
for key, strNumbers in a.iteritems(): 
    a[key] = [int(n) for n in strNumbers] 
0

你可以試試這個,

>>> a={ 
    'sig2/Bit 2': ['0', '0', '1'], 
    'sig1/Bit 1': ['1', '0', '1'] 
    } 

>>> for i in a.keys(): 
     a[i]=map(int,a[i]) 

輸出:

>>> print a 
{'sig2/Bit 2': [0, 0, 1], 'sig1/Bit 1': [1, 0, 1]} 
0

它是那麼容易,因爲:

a = { 
    'sig2/Bit 2': ['0', '0', '1'], 
    'sig1/Bit 1': ['1', '0', '1'] 
} 

b = dict((x, map(int, y)) for x, y in a.iteritems()) 

UPDATE

對於上面的代碼,你可以使用字典理解最後一行:

b = {x: map(int, y) for x, y in a.iteritems()}