繁体   English   中英

通过比较值获取列表值

[英]Get list value by comparing values

我有一个这样的列表:

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

每次有新的 object 时,我都想检查列表中是否已经存在具有相同描述的条目。 如果有,我需要在金额上加 1。

我怎样才能最有效地做到这一点? 是通过所有条目的唯一方法吗?

我建议将data设为字典并将描述用作键。

如果您担心使用字符串作为键的效率,请阅读:python 字典中长(字符串)键的效率

例子:

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

在任何一种情况下,您都应该首先对两种解决方案(另一种是迭代方法)进行基准测试,然后才能得出任何关于效率的结论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM