What is difference between str.format_map(mapping) and str.format
<p>I don't understand the <code>str.format_map(mapping)</code> method. I only know it is similar to <code>str.format(*args, **kwargs)</code> method and you can also pass a dictionary as an argument (please see my example). 
Example:</p>

<pre><code>print ("Test: argument1={arg1} and argument2={arg2}".format_map({'arg1':"Hello",'arg2':123}))
</code></pre>

<p>Can someone explain to me the difference between <code>str.format_map(mapping)</code> and <code>str.format(*args, **kwargs)</code> methods and why do I need  the <code>str.format_map(mapping)</code>  method? </p>