从2元组列表创建字典
我有一个包含二元组的列表,像这样:
l = [('a', 1), ('b', 2)]
我想把这个列表转换成一个字典,这样我就可以做一些类似于下面的操作:
l.a #=> 1
所以我试了这样做,但为什么会失败呢?
d = reduce(lambda y,x : y.update({x[0]:x[1]}),l,{})
这段代码给出了一个错误:
AttributeError: 'NoneType' object has no attribute 'update'
我哪里做错了呢?
2 个回答
4
为什么不直接这样做:
d = dict(l)
另外,回答你的问题,你的解决方案失败是因为 y
(它是一个包含两个元素的元组)没有更新的方法,因为它不是一个字典。幸运的是,你现在做的事情其实是内置的功能。
21
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这个时候,我们可以去一些技术论坛,比如StackOverflow,去寻求帮助。在这些论坛上,很多人会分享他们的经验和解决方案。
当你在这些论坛上提问时,记得把你的问题描述清楚,包括你遇到的具体情况、你使用的代码,以及你希望得到什么样的帮助。这样,其他人才能更好地理解你的问题,并给出有效的建议。
同时,也要注意查看别人提问的方式,学习他们是如何描述问题的,这样可以提高你提问的质量,增加得到帮助的机会。
总之,技术论坛是一个很好的资源,能帮助你解决编程中的各种问题。只要你用心去提问和学习,就一定能找到解决方案。
>>> l = [('a', 1), ('b', 2)]
>>> d = dict(l)
>>> d['a']
1