将字符串列表转换为python中的整数列表

时间:2014-04-04 10:26:28

标签: python dictionary

我有一本字典:

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]
  }

请帮帮我。

7 个答案:

答案 0 :(得分:3)

我不会向您提供完整的答案,而是指导如何执行此操作。这是一个例子:

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

希望这足以引导你弄明白这一点 提示:遍历字典并为每个键/值对执行此操作。祝你好运

答案 1 :(得分:0)

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

答案 2 :(得分:0)

可能有更好的方法,但这里有一个。

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

答案 3 :(得分: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]}

答案 4 :(得分:0)

for key, strNumbers in a.iteritems():
  a[key] = [int(n) for n in strNumbers]

答案 5 :(得分: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]}

答案 6 :(得分: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())

<强>更新

对于上面代码中的最后一行,您可以使用dict comprehension:

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