Python 字典中的哪些键值未更新?

Python 字典中的哪些键值未更新?,python,Python,我有一个字典,它的键是整数,值是列表,因为每个键列表在每次迭代中都会更新。还添加了新的键。但也可能存在某些关键值未更新的情况 知道哪些密钥未更新的最有效方法是什么 我可以迭代字典中的所有列表,并从长度上检查该列表是否已更新,但有更好的方法吗 注意:整数键不是连续的数字。因此,使用简单列表或数组似乎不是一个选项作为@Scott Skiles在注释中提出的解决方案的替代方案,我会在列表旁边的字典中添加一个值,该值指定修改键时的最新迭代: my_dict = {} iteration_num = 0

我有一个字典,它的键是整数,值是列表,因为每个键列表在每次迭代中都会更新。还添加了新的键。但也可能存在某些关键值未更新的情况

知道哪些密钥未更新的最有效方法是什么

我可以迭代字典中的所有列表,并从长度上检查该列表是否已更新,但有更好的方法吗


注意:整数键不是连续的数字。因此,使用简单列表或数组似乎不是一个选项

作为@Scott Skiles在注释中提出的解决方案的替代方案,我会在列表旁边的字典中添加一个值,该值指定修改键时的最新迭代:

my_dict = {}
iteration_num = 0
while True:
    updates_to_make = some_function_producing_2tuples()
    # iterate through new additions, and add them to the list
    for key, value in updates_to_make:
        # the 'value' in my_dict is a 2-tuple (last_updated, list)
        # we replace last_updated every time we change the key somehow
        if key in my_dict:
            my_dict[key][1].append(value)
            my_dict[key][0] = iteration_num
        else:
            my_dict[key] = (iteration_num, [value])
    ...
    iteration_num += 1
然后,您可以通过应用过滤器来确定哪些键已更新或未更新:

updated_keys = [k for k, v in my_dict.items() if v[0] == iteration_num]

可以创建一组包含和/或排除的关键点。请提供一些示例代码。好主意。我可以从字典中获取一组密钥并删除更新后的密钥。最后,我将有一组未更新的密钥。谢谢很抱歉,我通常在启动代码之前在笔记本上写伪代码。当我通常试图思考我的方法可能出现的问题时,我感觉更舒服