Even if Python tries to make the common code patterns the fastest, optimization techniques might obfuscate your code and make it really hard to read, understand, and develop. There's a balance to keep between readability/maintainability and performance.
Remember that optimization usually has no bounds. There will always be something that can be done to make your code a few milliseconds faster. So, if you have reached 90% of your optimization objectives, and the 10% left to be done would make your code utterly unreadable and unmaintainable, it might be a good idea to stop the work there or to look for other solutions.
Optimization should not make your code unreadable. If it happens, you should look for alternative solutions, such as externalization or redesign. Look for a good compromise between readability and speed.
We'll take a look at optimization strategy in the next section.