기상 관측소 데이터를 namedtuple 기반의 목록으로 만드는 더 깔끔한 코드는 다음과 같습니다.
zip()을 이용하여 여러 개의 파일을 열고 읽기
>>> stations = []
>>> with ( # ➊
... open("station-names.txt") as names,
... open("station-latitudes.txt") as lats,
... open("station-longitudes.txt") as lons,
... open("station-elevations.txt") as els,
... ):
... for data in zip(names, lats, lons, els):
... data = (field.rstrip() for field in data)
... stations.append(Station(*data))
...
>>> assert len(stations) == 1255
>>> pprint(stations[:4])
[Station(name='JAN MAYEN NOR NAVY', latitude='70.9333333', longitude='-8.6666667', elevation='9.0'),
Station(name='SORSTOKKEN', latitude='59.791925', longitude='5.34085', elevation='48.76'),
Station(name='VERLEGENHUKEN', latitude='80.05', longitude='16.25', elevation='8.0'),
Station(name='HORNSUND', latitude='77.0', longitude='15.5', elevation='12.0')]
➊ 괄호를 사용한 상황 정보 관리자는 파이썬 3.10부터 도입되었습니다.