我有以下列表:
['a:1', 'b:2', 'c:3', 'd:4']
我想转换为有序的dict(使用collections
):
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
我已经看过使用正则表达式here的解决方案,但我不熟悉正则表达式足以推出解决方案。有什么想法吗?
答案 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))
答案 1 :(得分: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}