2017-08-04 91 views
1

陣列獲取的列我有一個數組從Jinja2的蟒蛇

{% set myarray = [['apple', true, false], 
['banana', false, true]] %} 

我想

['apple', 'banana'] 

爲什麼一些容易這麼難與神社?

回答

0

可以使用do擴展的Jinja2

的「做」又名錶達式語句擴展增加了一個簡單的做標籤的模板引擎,就像一個變量表達式,但忽略返回值。

的Python

from flask import Flask 

app = Flask(__name__) 
app.jinja_env.add_extension('jinja2.ext.do') 

HTML

{% set myarray = [['apple', true, false],['banana', false, true]] %} 
{% set second_array = [] %} 

{% for a in myarray %} 
    {% do second_array.append(a[0]) %} 
{% endfor %} 

{{ second_array }} 

另一種方法可以做到這一點,而無需使用do擴展,是生成自定義filter並使用標準的列表理解

Python

def get_nth(lst, i): 
    return [l[i] for l in lst] 
app.jinja_env.filters['get_nth'] = get_nth 

HTML

{{ myarray|get_nth(0) }} 
+0

如果我不得不做這一切只是爲了得到一個列,如果你希望將數據只輸出,你可以做,我會流淚 – Toskan

+0

@Toskan「my_array [0]」在一個循環中,但這種方式允許您將值存儲到另一個數組 – Wondercricket

+0

我知道如何從數組中輸出值。但令人傷心的是,忍者非常糟糕。我會哭泣。 – Toskan