J'ai lu PEP 618 (Ajouter une vérification de longueur facultative à la fermeture éclair)

L'autre jour, PEP 618 (Add Optional Length-Checking To zip) a été [confirmé qu'il a été accepté](https: // github. J'ai vu com / python / peps / pull / 1435). Donc, cette fois, je lirai PEP 618.

Aperçu

  >>> list(zip([1,2,3], [4]))  # 2,3 seront perdus
  [(1, 4)]
  def apply_calculations(items):
      transformed = transform(items)
      for i, t in zip(items, transformed):
          yield calculate(i, t)

approche

Python 3.10 a ajouté un paramètre appelé «strict» à la fonction «zip ()». Si vous spécifiez une valeur positive pour strict, ValueError se produit lorsque les longueurs des éléments ne sont pas égales.

>>> for item in zip([1, 2, 3], [4], strict=True):
...     print(item)
...
(1, 4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: zip() argument 2 is shorter than argument 1

J'obtiens une erreur indiquant que le deuxième argument de zip () est plus court que le premier argument. À propos, il convient de noter que la boucle est en cours d'exécution jusqu'à ce qu'elle détecte que les longueurs ne correspondent pas.

Par défaut, le comportement est le même qu'avant (équivalent à strict = False, c'est-à-dire que si les longueurs sont différentes, les données sont supprimées).

>>> for item in zip([1, 2, 3], [4]):
...     print(item)
...
(1, 4)
>>>

Impressions

Recommended Posts

J'ai lu PEP 618 (Ajouter une vérification de longueur facultative à la fermeture éclair)
J'ai lu PEP 584 (Add Union Operators To dict)
J'ai lu PEP 613 (alias de type explicite)
J'ai lu PEP 612 (Variables de spécification des paramètres)
J'ai lu PEP 604 (syntaxe complémentaire pour Union []).
J'ai lu PEP-362 (objet de signature de fonction)
Ce que j'ajoute toujours à mon ~ / .bashrc
J'ai lu PEP 614 (Relaxing Grammar Restrictions on Decorators)
J'ai lu "Comment créer un laboratoire de piratage"
J'ai lu PEP-593 (fonction flexible et annotations variables)
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai lu PEP-544 (Protocoles: sous-typage structurel (typage statique du canard))
J'ai lu PEP 585 (Type Hinting Generics In Standard Collections)
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
J'ai lu la référence Chainer (mise à jour de temps en temps)