【发布时间】:2016-01-17 05:53:47
【问题描述】:
假设我们有一个术语列表:
termList = ["A", "A", "B", "C", "C", "C", "E"]
现在,假设我们有另一个列表,包含更多列表:
otherList = [["A, "E"], ["A", "B", "C", "C"], ["B", "B"], ["A", "C"]]
我想做的是对于otherList的每个索引,检查它的每个term的总和加上之前所有索引的总和,看看每个term的总数没有超过termList中的总和。
例如:
- 迭代 1:A (1),E (1)
- 迭代 2:A (2)、B (1)、C (2)、E (1)
- 迭代 3:发现 B 有 3 个实例。这不仅仅是
termList中存在的一个实例,因此循环结束。
我被困在如何在不嵌套一百万个循环的情况下做到这一点。我想我们可以使用生成器表达式all 和sum 的组合,但不能完全弄清楚如何添加所有前面的项并检查所有总和是否有效。
【问题讨论】:
-
我在这里只看到 3 个循环 - 计算 termlist 元素、获取 otherList 元素(子列表)、计算子列表元素(并将结果添加到全局总和)。也许使用“collections.Counter()”可能是一个循环。
-
基本上你希望在一个扁平的 andca 嵌套列表中计算每个值的计数并比较它们?
标签: python list loops count sum