我可以避免这种繁琐的列表理解

时间:2016-01-10 09:44:59

标签: python list-comprehension

有一个列表,其中包含以下数据

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理解无关。

1 个答案:

答案 0 :(得分:2)

字典可以是initialized,带有可迭代的,返回的迭代,只有两个对象。这应该这样做:

d = dict([item.split('=', 1) for item in a])

或者,您可以使用map()

d = dict(map(lambda item: item.split("=", 1), a))