【发布时间】:2016-06-20 23:49:33
【问题描述】:
真的很难说出这个问题,而且我也很难解决如何解决这个问题。 假设我有以下字典。
mydict = { u'10441':
[{u'quantity': 1, u'productId': 10441},
{u'quantity': 25, u'productId': 10451},
{u'quantity': 100, u'productId': 10461}],
u'10451':
[{u'quantity': 1, u'productId': 10451},
{u'quantity': 4, u'productId': 10461}]
}
如何返回最大的顶级子字典,该字典具有与其他字典相同的 productId 值?例如 productId 10461 存在于 mydict 的两个字典(10441 和 10451)中。我想以编程方式获取以下内容,因为此 dict (10441) 的值包含三个项目 (dicts)。
mydict1 = { u'10441':
[{u'quantity': 1, u'productId': 10441},
{u'quantity': 25, u'productId': 10451},
{u'quantity': 100, u'productId': 10461}]
}
通常我能够解决这类问题,但由于某种原因,我遇到了这个问题。有没有办法以惯用的方式解决这个问题,可能使用过滤器或嵌套的字典理解?
【问题讨论】:
-
据我了解,您首先需要计算每个字典的常用项数,并在计算时记住哪个字典最常用(您需要一个最大值,某种索引来记住哪个 dict 是选择的,一个 maxNumberOfItems)。在检查 dictA 是否有比 max 更多的常见项目时,请确保您还检查是否相等。如果它们具有相同数量的公共项目,则更新索引和 maxNumberOfItems。
-
您是否在寻找特定的产品 ID(即您将提供 10461)?还是要检查 all 产品字典中的 all 产品 ID?
-
不是特定的 ID。有很多(超过一千个 productId),我想通过在每个上运行比较逻辑来获得最大尺寸的字典。
标签: python list dictionary