Python 我能避免这种繁琐的列表理解吗
有一个列表,其中包括以下数据:Python 我能避免这种繁琐的列表理解吗,python,list-comprehension,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,它不支持字典理解。) 我的问题: 有没有办法重写代码,哪种更简洁?e、 g b=dic
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,它不支持字典理解。)
我的问题:有没有办法重写代码,哪种更简洁?e、 g
b=dict(x,y) for item.split('=') in a [WRONG]
我觉得list(item.split('='))[0]
和list(item.split('='))[1]
非常麻烦
[更新]@TigerhawkT3,这个链接并不能解决我的问题,因为我的问题与学习如何在Python 2.7之前编写dict理解无关。一个字典可以包含一个iterable,返回的iterable正好包含两个对象。这应该做到:
d = dict([item.split('=', 1) for item in a])
或者,您可以使用map()
:
为什么不
dict([x.split('=')表示a中的x])
?与Henriks类似:b=dict(item.split(“=”)表示a中的项)
。在Python2.7中运行,不确定2.6是否需要“[]”。灵感来自
d = dict(map(lambda item: item.split("=", 1), a))