有一个列表,其中包含以下数据
a = ['key1=value1','key2=value2','key3=value3',...,'key100=value100']
我编写下面的代码,它将列表转换为一行中的一个dict,
b = dict((list(item.split('='))[0], list(item.split('='))[1]) for item in a
(我的Python版本是2.6,它不支持字典理解。)
我的问题:
有没有办法重写代码,哪个更浓缩?如,
b=dict(x,y) for item.split('=') in a [WRONG]
我觉得list(item.split('='))[0]
和list(item.split('='))[1]
非常麻烦。
[更新]
@ TigerhawkT3,链接Alternative to dict comprehension prior to Python 2.7并没有解决我的问题,因为我的问题与学习如何在Python 2.7之前编写dict理解无关。
答案 0 :(得分:2)
字典可以是initialized,带有可迭代的,返回的迭代,只有两个对象。这应该这样做:
d = dict([item.split('=', 1) for item in a])
或者,您可以使用map()
:
d = dict(map(lambda item: item.split("=", 1), a))