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

2024-09-29 23:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我搞不懂lamba函数。有人能教我如何使用lambda函数将下面的字符串拆分成字典吗?

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

谢谢


Tags: lambda函数字符串city字典johnfnamedoe
3条回答

您不需要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'}

这里真的不需要羔羊。

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

如果你真的想,你甚至可以做这两个兰姆达斯,但不要尝试在工作!只是为了好玩:

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(',')),
    {})                                                 

相关问题 更多 >

    热门问题