zip 컨텍스트 메서드

zip 컨텍스트 메서드

zip 컨텍스트 메서드는 튜플의 iterator를 반환하는 데 쓸 수 있어요. i번째 튜플은 각 인자 iterable의 i번째 요소를 담고 있어요. 자세한 내용은 Python 문서를 참고해요.

출처: 문서

본문

인자(Args):

  • *args: 개수 제한 없는 iterable
  • default: *args가 iterable이 아닐 때 반환할 기본값

사용법

{% set my_list_a = [1, 2] %}
{% set my_list_b = ['alice', 'bob'] %}
{% set my_zip = zip(my_list_a, my_list_b) | list %}
{% do log(my_zip) %}  {# [(1, 'alice'), (2, 'bob')] #}
{% set my_list_a = 12 %}
{% set my_list_b = ['alice', 'bob'] %}
{% set my_zip = zip(my_list_a, my_list_b, default = []) | list %}
{% do log(my_zip) %}  {# [] #}

zip_strict

zip_strict 컨텍스트를 사용하면 zip처럼 튜플의 iterator를 반환할 수 있어요. zip 컨텍스트 메서드와의 차이는, zip_strict 메서드는 제공된 값 중 하나가 유효한 iterable이 아닐 때 TypeError 예외를 발생시킨다는 거예요.

인자(Args):

  • value: 변환할 iterable (예: 리스트)
{% set my_list_a = [1, 2] %}
{% set my_list_b = ['alice', 'bob'] %}
{% set my_zip = zip_strict(my_list_a, my_list_b) | list %}
{% do log(my_zip) %}  {# [(1, 'alice'), (2, 'bob')] #}
{% set my_list_a = 12 %}
{% set my_list_b = ['alice', 'bob'] %}
{% set my_zip = zip_strict(my_list_a, my_list_b) %}

Compilation Error in ... (...)
  'int' object is not iterable

더 알아보기 (Learn more)

  • zip은 iterable을 병렬로 묶을 때 써요. 유효하지 않은 입력에는 zip_strict가 예외를 던져요.
  • 관련 개념: set, Python zip.