Update method in Python dictionary
dictionary, python
Solution
The difference is that the second method does not work:
>>> {}.update(1, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: update expected at most 1 arguments, got 2
`dict.update()` expects to find a iterable of key-value pairs, keyword arguments, or another dictionary:
Update the dictionary with the key/value pairs from other, overwriting existing keys. Return `None`.
`update()` accepts either another dictionary object or an iterable of key/value pairs (as tuples or other iterables of length two). If keyword arguments are specified, the dictionary is then updated with those key/value pairs: `d.update(red=1, blue=2)`.
`map()` is a built-in method that produces a sequence by applying the elements of the second (and subsequent) arguments to the first argument, which must be a callable. Unless your `key` object is a callable and the `value` object is a sequence, your first method will fail too.
Demo of a working `map()` application:
>>> def key(v):
... return (v, v)
...
>>> value = range(3)
>>> map(key, value)
[(0, 0), (1, 1), (2, 2)]
>>> product = {}
>>> product.update(map(key, value))
>>> product
{0: 0, 1: 1, 2: 2}
Here `map()` just produces key-value pairs, which satisfies the `dict.update()` expectations.
Problem
I was trying to update values in my dictionary, I came across 2 ways to do so: ``` product.update(map(key, value)) product.update(key, value) ``` What is the difference between them?