【发布时间】:2011-10-01 17:07:32
【问题描述】:
我正在尝试找出字典中的区别,是否添加或删除了某些内容以及从什么内容中删除。
这是一个添加值的情况:
original = {0: None, 1: False, 2: [16]}
new = {0: None, 1: False, 2: [2, 16]}
difference = True, {2: 2} # True = Added
这是一个值被删除的情况:
original = {0: None, 1: False, 2: [16, 64]}
new = {0: None, 1: False, 2: [64]}
difference = False, {2: 16} # False = Removed
问题是我不知道如何接收差异。有人会碰巧知道如何达到这样的结果吗?
额外信息(不知道你是否需要这个):
- 这也适用于原始和新的 0 和 1。
- 1 和 2 不能同时处于活动状态。如果一个有值,另一个是 False。
【问题讨论】:
-
为什么不围绕 dict 创建一个“包装器”并使用它来跟踪添加/删除内容的时间? (我不知道这在 python 中会有多难,但在 c# 中相当简单)。
-
您的问题未指定。如果我在您的第一个示例中删除 16 并 添加 2 会发生什么?差异必须同时为真和假。
-
让我们假设这永远不会发生,phooji。 :)
标签: python dictionary