더북(TheBook)

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)를 일으키는 바람직한 접근 방식에 해당합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.