[PYTHON] Ich habe PEP 618 gelesen (Optionale Längenprüfung zum Reißverschluss hinzufügen)

Neulich wurde PEP 618 (Optionale Längenprüfung zum Zip hinzufügen) [verpflichtet, dass es akzeptiert wurde](https: // github). Ich habe com / python / peps / pull / 1435 gesehen. Also werde ich diesmal PEP 618 lesen.

Überblick

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

Ansatz

Python 3.10 hat der Funktion zip () einen Parameter namens "strict" hinzugefügt. Wenn Sie einen positiven Wert für "strict" angeben, tritt "ValueError" auf, wenn die Längen der Elemente nicht gleich sind.

>>> 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

Ich erhalte die Fehlermeldung, dass das zweite Argument von "zip ()" kürzer als das erste Argument ist. Übrigens sollte beachtet werden, dass die Schleife läuft, bis festgestellt wird, dass die Längen nicht übereinstimmen.

Standardmäßig ist das Verhalten das gleiche wie zuvor (entspricht "strict = False", dh wenn die Längen unterschiedlich sind, werden die Daten verworfen).

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

Impressionen

Recommended Posts

Ich habe PEP 618 gelesen (Optionale Längenprüfung zum Reißverschluss hinzufügen)
Ich habe PEP 584 gelesen (Add Union Operators To dict)
Ich habe PEP 613 (Explicit Type Aliases) gelesen.
Ich habe PEP 612 (Parameter Specification Variables) gelesen.
Ich habe PEP 604 (Komplementäre Syntax für Union []) gelesen.
Ich habe PEP-362 (Function Signature Object) gelesen.
Was ich immer zu meinem ~ / .bashrc hinzufüge
Ich habe PEP 614 (Lockerung der Grammatikbeschränkungen für Dekorateure) gelesen.
Ich las "Wie man ein Hacking Lab macht"
Ich habe PEP-593 gelesen (Flexible Funktion und variable Anmerkungen)
Ich habe versucht, mit VOICEROID2 2 automatisch zu lesen und zu speichern
Ich las PEP-544 (Protokolle: Strukturelle Subtypisierung (statische Ententypisierung))
Ich habe PEP 585 gelesen (Type Hinting Generics In Standard Collections)
Ich habe versucht, mit VOICEROID2 automatisch zu lesen und zu speichern
Ich habe die Chainer-Referenz gelesen (von Zeit zu Zeit aktualisiert).