我想创建一个成分的摘要,但我不知道如何忽略elments,我已经计算了。。。你知道吗
试图删除访问过的元素,但最后出现索引错误
来源如下:
<br>
1.[(Ing1,350grams),(Ing4,200grams)]<br>
2.[(Ing2,2000grams),(Ing1,250grams),(Ing7,50grams),(Ing5,100grams)]<br>
3.[(Ing1,100grams),(Ing7,120grams)]<br>
4.[(Ing3,80grams),(Ing5,70grams),(Ing1,90grams)]<br>
...
这些应导致:
<br>
Ing1:790grams<br>
Ing2:2000grams<br>
Ing3:80grams<br>
Ing4:200grams<br>
Ing5:170grams<br>
Ing7:170grams<br>
我试过这些代码: (eating是一个ing对象的列表,getName()是字符串形式的名称,add()是一个函数,用于添加ing对象的值)
# eating is my list of ing objects
new_eating = []
for i in range(0,len(eating)):
for j in range(i,len(eating)):
if (i != j) and (eating[i].getName() == eating[j].getName()):
eating[i] = eating[i].add(eating[j])
new_eating.append(eating[i])
但这不管用。。。你知道吗
我建议使用dict对象。不是将所有内容作为列表保存,而是将它们作为键/值对保存,其中键是成分的名称,并映射到总数。然后您可以使用配料名称来合并相同配料的值。你知道吗
此外,使用
defaultdict
将在您第一次尝试访问它们时将它们全部设置为0。你知道吗注意,我不知道您的配料类型是如何工作的,所以这是伪python
相关问题 更多 >
编程相关推荐