Me acaba de sorprender que si en #python haces:
(head, *tail) = (1,2,3,4)
Espero que 'tail' sea una tupla, pero no, es una lista. No mantiene el tipo de dato.
Me acaba de sorprender que si en #python haces:
(head, *tail) = (1,2,3,4)
Espero que 'tail' sea una tupla, pero no, es una lista. No mantiene el tipo de dato.
@pedromj Tiene su explicación, pero no deja de ser contraintuitivo, sobre todo lo que despista cuando creo que son tuplas que puedo usar en "sets". Al no ser hashables, no ves el error hasta que ejecutas el código. Por lo menos veo que mypy te avisa.
@chemacortes @pedromj
Aquí explican un poco el comportamiento
https://peps.python.org/pep-0448/#disadvantages
@chemacortes Según PEP 3132, el unpacking parte de cualquier iterable y acabaen una lista. La complejidad necesaria para mantener el tipo en la mayor medida de lo posible hizo que se postergase. Por lo visto, ha sido indefinidamente.
tiflolinux.org - GNU Social is a social network, courtesy of tiflolinux.org. It runs on GNU social, version 2.0.1-beta0, available under the GNU Affero General Public License.
All tiflolinux.org - GNU Social content and data are available under the Creative Commons Attribution 3.0 license.