2

我有以下列表:

['a:1', 'b:2', 'c:3', 'd:4']

我想转换为有序的字典(使用collections):

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

我在这里看到了使用正则表达式的解决方案,但我对正则表达式的熟悉程度不足以推出解决方案。对此有什么想法吗?

4

2 回答 2

10
d = collections.OrderedDict(el.split(':') for el in your_list)

或者,将值转换为整数:

OrderedDict( (k, int(v)) for k, v in (el.split(':') for el in your_list))
于 2012-10-22T16:07:01.593 回答
2

要将值作为整数获取,请尝试以下操作:

In [67]: lis=['a:1', 'b:2', 'c:3', 'd:4']

In [68]: def func(x):
    spl=x.split(':')
    return spl[0],int(spl[1])
   ....: 

In [71]: dict(map(func,lis))
Out[71]: {'a': 1, 'b': 2, 'c': 3, 'd': 4}
于 2012-10-22T16:14:49.380 回答