This page is reasonable evidence that &quot;one (obvious) way to do it&quot; has gone out the window, and that nowadays Python takes the kitchen sink approach like many other languages, particularly those which have an &quot;old&quot; and a &quot;new&quot; way of doing things. Examples are:<p>* Javascript (ECMAScript4, ECMAScript5 and ECMAScript6 all have different ways of iterating a collection! Not the mention the many utility libraries which implement quite basic things in different ways)<p>* PHP (Old school no-OO built-ins, &lt;?php templating vs Java style OO PHP5+ and the SPL, )<p>* C++ (&quot;C with classes&quot; vs varying degrees of template magic, STL and Boost)<p>I&#x27;m beginning to feel quite sceptical about whether these types of changes are actually worth it. % on strings was a little bit quirky but fine - I don&#x27;t see why .format() is better -- people are still going to encounter the first so the damage is already done. Using either of the first two with .update() was fine.