最小值神社

Minimum value Jinja

我有一个带有 table 的 Jinja 模板,每行有 5 列。第1至4列是数字的可变字符串表示(浮点小数),第5列使用以下代码显示这4列的最小值;

{{ ['1', '2', '3', '4'] | min }}

这工作正常,只要所有 4 列都被填充。一旦其中一列为空,则不会返回任何内容。

{{ ['1', '2', '3', ''] | min }}

有办法解决这个问题吗?


注意:原来的问题提到了一个整数列表 [1, 2, 3 ,4] 但在 pretty printing 之后,我意识到它们实际上是整数的字符串表示。

因为你的 pprint showed you that you do have string representation of integers — '1' — and not integers — 1 — in your variables, what you can, now, do is to reject 空字符串。

为了格外小心,我还抛出了一个 map of the trim 过滤器,所以,如果你有一个空字符串——例如只有空格——那么,这种情况也将被掩盖。

所以,给定:

{{ ['1', '2', '', '4', ' '] | map('trim') | reject('eq','') | min }}

这给出了预期的结果:'1'


如果您确实有整数,则可以 select 仅使用 select filter and the number test.

列表中的数值

给定:

  • {{ [1, 2, None, 4] | select('number') | min }}
    

  • {{ [1, 2, '', 4] | select('number') | min }}
    

正如您所期望的那样,它们都会产生 1