zip(strict=True)를 사용하여 반복자 길이의 일관성 강제하기
>>> stations = []
>>> with (
... open("station-names.txt") as names,
... open("station-lattrunc.txt") as lats,
... open("station-longitudes.txt") as lons,
... open("station-elevations.txt") as els,
... ):
... for datum in zip(names, lats, lons, els, strict=True):
... datum = (d.rstrip() for d in datum) # ➊
... stations.append(Station(*datum))
...
Traceback (most recent call last):
[...]
ValueError: zip() argument 2 is shorter than argument 1
➊ 선택 사항인 strict 매개 변수는 파이썬 3.10에서 추가되었습니다.
이 접근 방법은 길이를 알지 못하는 여러 개의 데이터 스트림을 대상으로 작업할 때 매우 효과적인데, 데이터 스트림의 길이가 무조건 같아지도록 강제할 뿐입니다. 이는 거의 모든 상황에서 빠른 실패(fail fast)를 일으키는 바람직한 접근 방식에 해당합니다.