从2元组列表创建字典

6 投票
2 回答
6388 浏览
提问于 2025-04-16 18:02

我有一个包含二元组的列表,像这样:

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 

撰写回答