The Python interpreter as acting totally sanely.<p>The author is asking it to loop over a list (or any iterable) and destructure each of the <i>elements</i>. But is then providing a a list containing some strings, none of which can be destructured.<p>Reducing to just the second part of the loop:<p><pre><code> [(x, z) for x, _, z, *_ in ["0x2d41854", "3", "0x80001a14", "(0xbffd)"]]
</code></pre>
IE in non-list-comprehension form:<p><pre><code> for x, _, z, *_ in ["0x2d41854", "3", "0x80001a14", "(0xbffd)"]:
</code></pre>
IE, the first element is expanded as:<p><pre><code> x, _, z, *_ = "0x2d41854"
</code></pre>
Which is clearly nonsensical.