2014-04-04 60 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()}