我有一个这样的列表:
data.append(
{
"type": type,
"description": description,
"amount": 1,
}
)
每次都有一个新对象要检查列表中是否已有具有相同描述的条目。如果有的话,我需要在金额上加1。
如何才能最有效地做到这一点?唯一的方法是遍历所有条目吗?
答案 0 :(得分:1)
我建议将data
用作字典,并以描述作为键。
如果您担心将字符串用作键的效率,请阅读:efficiency of long (str) keys in python dictionary。
示例:
data = {}
while loop(): # your code here
existing = data.get(description)
if existing is None:
data[description] = {
"type": type,
"description": description,
"amount": 1,
}
else:
existing["amount"] += 1
无论哪种情况,在得出关于效率的任何结论之前,您都应该先对这两种解决方案进行基准测试(另一种是迭代方法)。