我可以避免这种繁琐的列表理解吗
Can I avoid such cumbersome list comprehension
有一个列表,其中包含以下数据,
a = ['key1=value1','key2=value2','key3=value3',...,'key100=value100']
我写了下面的代码,在一行中将列表转换为一个字典,
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,link Alternative to dict comprehension prior to Python 2.7 没有解决我的问题,因为我的问题与在 Python 2.7.
之前学习如何编写字典理解无关紧要
字典可以是 initialized 带有一个可迭代对象,返回恰好有两个对象的可迭代对象。应该这样做:
d = dict([item.split('=', 1) for item in a])
或者,您可以使用 map()
:
d = dict(map(lambda item: item.split("=", 1), a))
有一个列表,其中包含以下数据,
a = ['key1=value1','key2=value2','key3=value3',...,'key100=value100']
我写了下面的代码,在一行中将列表转换为一个字典,
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,link Alternative to dict comprehension prior to Python 2.7 没有解决我的问题,因为我的问题与在 Python 2.7.
字典可以是 initialized 带有一个可迭代对象,返回恰好有两个对象的可迭代对象。应该这样做:
d = dict([item.split('=', 1) for item in a])
或者,您可以使用 map()
:
d = dict(map(lambda item: item.split("=", 1), a))