Python 3.x 遍历多个字典的列表,只显示一次键和列中的值
在那个里,我一直试图在Jinja模板中显示字典列表。我只需要显示一次键,因为两个字典都有相同的键。然而,值需要显示在和键相同的行中的不同列中。问题是它在同一列中不断显示键和值 下面是我的密码Python 3.x 遍历多个字典的列表,只显示一次键和列中的值,python-3.x,jinja2,Python 3.x,Jinja2,在那个里,我一直试图在Jinja模板中显示字典列表。我只需要显示一次键,因为两个字典都有相同的键。然而,值需要显示在和键相同的行中的不同列中。问题是它在同一列中不断显示键和值 下面是我的密码 {%for r in result%} {%for keyCategory, valueCategory in r.items()%} <div class="jumbotron p-3" style="margin-bottom
{%for r in result%}
{%for keyCategory, valueCategory in r.items()%}
<div class="jumbotron p-3" style="margin-bottom: 5px;">
<div class="row">
<div class="col-lg-4">
<label class=" text-right">{{keyCategory}}</label>
</div>
<div class="col-lg-2">
<input type="text" class="form-control text-left" id="idInput{{ keyCategory }}"
value="{{ valueCategory }}">
</div>
</div>
</div>
{%endfor%}
{%endfor%}
我希望您建议首先修改列表,然后进行迭代 使用itertools.groupby进行修改: 您的代码应该如下所示
final_result = defaultdict(list)
for d in result:
for k, v in d.items():
final_result[k].append(v)
试试这个
如果不起作用,请更正
编辑1:
我认为你想要做的,可以用下面的代码来实现
{%for r in result[0].keys()%}
{%for row in result%}
<div class="jumbotron p-3" style="margin-bottom: 5px;">
<div class="row">
<div class="col-lg-4">
<label class=" text-right">{{ r }}</label>
</div>
<div class="col-lg-2">
<input type="text" class="form-control text-left" id="idInput{{ keyCategory }}"
value="{{ row[r] }}">
</div>
</div>
</div>
{%endfor%}
{%endfor%}
在for循环中将r.values替换为最终结果[r]后,它工作正常
请使用列表中数据类型的示例进行澄清。键=类别,值=数量,在多个字典的列表中具有相同的键,值具有不同的数量,因此我想以一种方式显示左侧的类别和右侧的一列中的第一个字典值,在下一列中,第二个字典数量等[a',:10,'b':20,'c':5,'d':4},{a',:0,'b':25,'c':15,'d':40}]在key\u func中返回x['key']keyrerror:'key'无法打印任何键和值,但是,能够看到所有行与键完全相同的数字,有什么想法吗?在dict中使用任何键。例如:y=[{'a',:10,'b':20,'c':5,'d':4},{'a',:0,'b':25,'c':15,'d':40}]key_func=lambda x:x['a']我的系统不支持lambda,我们可以得到普通的func吗?取而代之的是lambdaYes,但Python默认支持它
{%for r in result[0].keys()%}
{%for row in result%}
<div class="jumbotron p-3" style="margin-bottom: 5px;">
<div class="row">
<div class="col-lg-4">
<label class=" text-right">{{ r }}</label>
</div>
<div class="col-lg-2">
<input type="text" class="form-control text-left" id="idInput{{ keyCategory }}"
value="{{ row[r] }}">
</div>
</div>
</div>
{%endfor%}
{%endfor%}
{%for r in final_result.keys()%}
<div class="jumbotron p-3" style="margin-bottom: 5px;">
<div class="row">
<div class="col-lg-4">
<label class=" text-right">{{r}}</label>
</div>
{%for value in final_result[r]%}
<div class="col-lg-2">
<input type="text" class="form-control text-left" id="idInput{{ value }}" value="{{ value }}">
</div>
{%endfor%}
</div>
</div>
{%endfor%}