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.
zip ()
verwenden, können Sie (oft) implizit erwarten, dass die Länge jedes Elements gleich ist. >>> 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)
zip ()
hinzu und überprüfen Sie, ob jedes Element dieselbe Länge hatPython 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)
>>>
Recommended Posts