별표 식으로 언패킹하면 이터레이터가 내보내는 내용 중에 첫 번째(헤더)와 나머지를 쉽게 나눠서 처리할 수 있다. 이 방식이 더 깔끔하다..

    it = generate_csv()
    header, *rows = it
    print('CSV 헤더:', header)
    print('행 수:', len(rows))
    
    >>>
    CSV 헤더: ('날짜', '제조사', '모델', '연식', '가격')
    행 수: 200

    하지만 별표 식은 항상 리스트를 만들어내기 때문에 이터레이터를 별표 식으로 언패킹하면 컴퓨터 메모리를 모두 다 사용해서 프로그램이 멈출 수 있다. 따라서 결과 데이터가 모두 메모리에 들어갈 수 있다고 확신할 때만 나머지를 모두 잡아내는 언패킹을 사용해야 한다(Better way 31: ‘인자에 대해 이터레이션할 때는 방어적이 돼라’ 참고).

    기억해야 할 내용

    • 언패킹 대입에 별표 식을 사용하면 언패킹 패턴에서 대입되지 않는 모든 부분을 리스트에 잡아낼 수 있다.

    • 별표 식은 언패킹 패턴의 어떤 위치에든 놓을 수 있다. 별표 식에 대입된 결과는 항상 리스트가 되며, 이 리스트에는 별표 식이 받은 값이 0개 또는 그 이상 들어간다.

    • 리스트를 서로 겹치지 않게 여러 조각으로 나눌 경우, 슬라이싱과 인덱싱을 사용하기보다는 나머지를 모두 잡아내는 언패킹을 사용해야 실수할 여지가 훨씬 줄어든다.

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