• 회원가입
  • 로그인
  • 구글아이디로 로그인

[filters] Jinja - last() 필터 - 시퀀스의 마지막 아이템 반환. (= last필터 = 라스트필터) ※ 마지막값

목차
  1. last() 예제 - 마지막 아이템 반환
  2. last() 정의
  3. last() 구문

 

last() 예제 - 마지막 아이템 반환

 

{% set data = ['apple', 'banana', 'orange', 'grape', 'kiwi'] %}

마지막값: {{ data|last }} {# kiwi #}

 


 

{% set data = [

    {'name': 'Python', 'version': 3.9},

    {'name': 'Jinja', 'version': 2.11},

    {'name': 'Flask', 'version': 1.1},

    {'name': 'Jinja', 'version': 3.0}

] %}


마지막값: {{ data|last }} {# {'name': 'Jinja', 'version': 3.0} #}

 

마지막값: {{ data|selectattr('name', '==', 'Jinja')|list|last }}

{# {'name': 'Jinja', 'version': 3.0} #}

 

 

last() 정의

 

시퀀스의 마지막 아이템 반환하는 필터.

 


 

1.

  • last() 필터가 제너레이터(generators)에서는 작동 X. (대신, 명시적으로, List(리스트)로 변환해 사용하는 방법 있음. (예) {{ data | selectattr('name', '==', 'Jinja') | list | last }}
  • 제너레이터(generator)는 반복 가능한(iterable) 객체 중 하나로, 필요한 값들을 필요한 시점에 생성하는데 사용됨. 제너레이터는 모든 값을 메모리에 한꺼번에 저장하지 않고, 필요한 값들을 요청할 때마다 생성함. 이는 메모리를 효율적으로 사용하며, 매우 큰 데이터 세트를 처리할 때 유용.
  • 그러나 last 필터와 같이 시퀀스의 마지막 요소를 가져오는 필터는 제너레이터와 함께 사용할 수 없음. 왜냐하면 제너레이터는 순회 중에 한 번만 값을 생성하고, 순회가 끝나면 값을 다시 생성할 수 없기 때문임. 이러한 이유로 last 필터와 같은 일부 필터는 제너레이터와 함께 사용할 수 없음.
  • 따라서, last 필더 사용하려면 리스트나 딕셔너리와 같은 반복 가능한(iterable) 객체로 변환 필요함.

 

2. cf.

  • first() 필터 - 시퀀스의 첫번째 아이템 반환.


3. 공식 매뉴얼

https://jinja.palletsprojects.com/en/3.1.x/templates/#jinja-filters.last

 

 

last() 구문

 

jinja-filters.last(seq: 't.Reversible[V]') → 't.Union[V, Undefined]'

 



분류 제목
tests Jinja - divisibleby() 테스트 - 해당값을 지정숫자로 나머지 없이 정확히 나눌 수 있는지 여…
tests Jinja - eq() / equalto() 테스트 - 동일한지(=같은지) 여부 체크 (= eq테스트 = 이…
tests Jinja - escaped() 테스트 - 회피처리된 값인지 체크 (= escaped테스트 = 이스케이프드테…
tests Jinja - even() 테스트 - 짝수인지 여부 체크 (= even테스트 = 이븐테스트)
tests Jinja - false() 테스트 - 거짓인지 체크 (= false테스트 = 폴스테스트)
tests Jinja - filter() 테스트 - 필터 존재 여부 체크 (= filter테스트 = 필터테스트)
tests Jinja - float() 테스트 - 부동소수(실수) 여부 체크 (= float테스트 = 플로우트테스트)
tests Jinja - ge() 테스트 - 더 크거나 같은지 체크 (= ge테스트 = 지이테스트/제테스트/게테스트)
tests Jinja - gt() / greaterthan() 테스트 - 더 큰지 체크 (= gt테스트 = 지티테스트 …
tests Jinja - in() 테스트 - 지정값이 시퀀스에 있는지 체크 (= in테스트 = 인테스트)
tests Jinja - integer() 테스트 - 정수인지 여부 체크 (= integer테스트 = 인티저테스트/인트…
tests Jinja - iterable() 테스트 - 반복 가능한 객체인지 체크 (= iterable테스트 = 이터러…
tests Jinja - le() 테스트 - 더 작거나 같은지 체크 (= le테스트 = 엘이데스트/레테스트)
tests Jinja - lower() 테스트 - 소문자인지 여부 체크 (= lower테스트 = 로우어테스트)
tests Jinja - lt() / lessthan() 테스트 - 보다 더 작은지 체크 (= lt테스트 = 엘티테스트…
tests Jinja - mapping() 테스트 - 매핑인지 여부 체크 (= mapping테스트 = 매핑테스트)
tests Jinja - ne() 테스트 - 다른지 여부 체크 (= ne테스트 = 네테스트/낫이퀄테스트)
tests Jinja - none() 테스트 - none인지 여부 체크 (= none테스트 = 넌테스트)
tests Jinja - number() 테스트 - 숫자인지 체크 (= number테스트 = 넘버테스트)
tests Jinja - odd() 테스트 - 홀수인지 여부 체크 (= odd테스트 = 아드테스트)
7/9
목록
찾아주셔서 감사합니다. Since 2012