如何使用lambda函数将逗号分隔的键值对转换为字典

时间:2010-06-30 08:24:33

标签: python lambda

我在找出lambda函数时遇到了一些问题。有人可以告诉我如何使用lambda函数将以下字符串拆分成字典吗?

fname:John,lname:doe,mname:dunno,city:Florida

由于

3 个答案:

答案 0 :(得分:15)

这里并不需要lambda。

s = "fname:John,lname:doe,mname:dunno,city:Florida"
sd = dict(u.split(":") for u in s.split(","))

答案 1 :(得分:2)

您不需要lambda函数来执行此操作:

>>> s = "fname:John,lname:doe,mname:dunno,city:Florida"
>>> dict(item.split(":") for item in s.split(","))
{'lname': 'doe', 'mname': 'dunno', 'fname': 'John', 'city': 'Florida'}

但如果你真的想要,你可以:

>>> dict(map(lambda x: x.split(":"), s.split(",")))
{'lname': 'doe', 'mname': 'dunno', 'fname': 'John', 'city': 'Florida'}

答案 2 :(得分:0)

如果你真的想要你甚至可以用两个lambdas做到这一点,但从不尝试这个工作!只是为了好玩:

s = "name:John,lname:doe,mname:dunno,city:Florida"
d = reduce(lambda d, kv: d.__setitem__(kv[0], kv[1]) or d, 
    map(lambda s: s.split(':'), s.split(',')),
    {})                                                 
相关问题