I have a list of 2-tuples like this:
l = [('a', 1), ('b', 2)]
and I want to be able to map this onto a dictionary object, so that I can do something like
l.a #=> 1
So I tried this, but why does it fail?
d = reduce(lambda y,x : y.update({x[0]:x[1]}),l,{})
This gives the error:
AttributeError: 'NoneType' object has no attribute 'update'
What am I doing wrong?
Andrey Sboev
>>> l = [('a', 1), ('b', 2)]
>>> d = dict(l)
>>> d['a']
1
Why not just do this:
d = dict(l)
Also, to answer your question, your solution is failing because y (which is a 2-tuple) has no method update, since it's not a dict. Thankfully, what you're doing is built right in.
来源:https://stackoverflow.com/questions/6072470/creating-a-dictionary-from-a-list-of-2-tuples