通过比较值获取列表值

时间:2020-07-07 07:03:23

标签: python django list

我有一个这样的列表:

    data.append(
        {
            "type": type,
            "description": description,
            "amount": 1,
        }
    )

每次都有一个新对象要检查列表中是否已有具有相同描述的条目。如果有的话,我需要在金额上加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

无论哪种情况,在得出关于效率的任何结论之前,您都应该先对这两种解决方案进行基准测试(另一种是迭代方法)。