所以这里的交易。我有一些日志文件即时创建电子邮件。我使用一个列出日志文件内容的jinja模板。不过,我已决定添加一些数据指标,以显示最近几天日志的变化。好吧比较jinja2的元组的两个列表
我的数据保存为csv文件,我把它们作为[('string',int,int),(...)]形式的元组列表加载我知道怎么做是使用列表理解来比较'串'索引,如果它们相等,则检查元组中的最后一个int。如果该整数更大,我添加一个小箭头显示增加,如果更低,显示减少的箭头。
到目前为止,我有点想要做的事情。例如,这是我的填充表中的神社模板文件
{% for f,r,u in data %}
<tr>
<td class="tg-031e"><span style="color:blue;font-weight:bold">▲</span>{{f}}</td>
<td class="tg-031e">{{r}}</td>
<td class="tg-031e">{{u}}</td>
</tr>
{% endfor %}
我还没有被添加条件,以显示一个向下的箭头,如果比较的结果是小于一段代码。
我想出了一个非常糟糕的功能来测试列表的比较。我对于它的工作状况并不感到厌恶。
def change(l1, l2):
inc = [x[0] for x,y in zip(l1,l2) if x[0] == y[0] and x[2] > y[2] ]
dec = [x[0] for x,y in zip(l1,l2) if x[0] == y[0] and x[2] < y[2] ]
yield inc, dec
我想要的是一种方法来比较这两个列表中的第三个整数,并动态地添加跨度到表中说明增加或减少。谢谢,我希望我正确地问。
我想也许你是在正确的轨道这里,但我不明白你的代码中的几件事,即你传递给diff_to_int()的东西。什么是new_tuple [2]和old_tuple [2]?新的4-tple列表是一个好主意,所以它只是new_list的一个副本,增加或减少字段(1,0,-1)。我想也许列表理解需要重新工作。我试试它的一些变化。 – gandolf
另外我想提一下,这两个列表可能不一定是相同的大小或具有完全相同的内容。只有在元组匹配中的两个字符串我们才会关心检查第二个int值的更改。 – gandolf