<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno gio 8 dic 2022 alle ore 06:37 Andrea D'Amore <<a href="mailto:a@d-amo.re">a@d-amo.re</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, 7 Dec 2022 at 18:40, Marco De Paoli <<a href="mailto:depaolim@gmail.com" target="_blank">depaolim@gmail.com</a>> wrote:<br>
> Mi viene il dubbio che nel confronto tra tuple venga valutata una identità tra oggetti... ma, al momento, non riesco ad approfondire la questione<br>
<br>
Il confronto tra sequenze usa `is` come scorciatoia invece di `==`.<br>
<br>
<a href="https://docs.python.org/3/reference/expressions.html#comparisons" rel="noreferrer" target="_blank">https://docs.python.org/3/reference/expressions.html#comparisons</a><br>
"""Sequences compare lexicographically using comparison of<br>
corresponding elements. The built-in containers typically assume<br>
identical objects are equal to themselves. That lets them bypass<br>
equality tests for identical objects to improve performance and to<br>
maintain their internal invariants."""</blockquote><div><br></div><div>è vero, grazie</div><div><br></div><div>in realtà la cosa è anche un po' più subdola di così, infatti istanze diverse di nan ... sono diverse!</div><div><br></div><div>>>> import math<br>>>> math.nan is math.nan  # OK, identity<br>True<br>>>> float("nan") is float("nan")  # ... OOOK, different instances!<br>False<br></div><div><br></div><div>Dalla regia (grazie CM) mi segnalano questo riferimento:</div><div><a href="https://bugs.python.org/issue21873#msg221608">https://bugs.python.org/issue21873#msg221608</a><br></div><div><br></div><div>e questo esempio:</div><div><br></div><div>>>> set([nan, nan])<br>{nan}<br>time: 19 ms (started: 2022-12-07 19:14:16 +01:00)<br>>>> set([float('nan'), float('nan')])<br>{nan, nan}<br>time: 8.54 ms (started: 2022-12-07 19:14:34 +01:00)<br></div><div><br></div><div>bye,</div><div>M</div></div></div>