2012-10-22 110 views
2

我有以下列表:的Python:解析列表“键:值”元素的“关键”词典:值对

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

我想转换到(使用collections)一个有序的字典:

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

我已经看到了使用正则表达式here解决方案,但我不熟悉正则表达式,足以滚的解决方案。对此有何想法?

+2

有关获取熟悉的正则表达式是什么? – elyashiv

+1

正则表达式与此有什么关系? –

+0

一直在努力... :) –

回答

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)) 
+0

这是不完全正确的......看来OP想要整数作为值,但这会给字符串... – mgilson

+0

@mgilson更新为反映 - 欢呼声。 –

+0

这是可爱的,欢呼声。 –

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} 
相关问题