【问题标题】:Count unique dates from a multidimensional list从多维列表中计算唯一日期
【发布时间】:2014-04-10 23:46:02
【问题描述】:

我正在查询数据库中的潜在客户。潜在客户有一个“潜在客户生成日期”和一个可能的“关闭”日期。

我想做的是逐月获取生成的潜在客户/每月关闭的潜在客户的总数,格式为 [MM/YYYY, 生成的潜在客户,关闭的潜在客户],用于 Google 可视化 API。

我设置了查询逻辑,目前的结果类似于:

[
["09/2011","09/2011"],
["09/2011","10/2011"],
["10/2011","12/2011"],
...
]

我一直在努力想出一种有效的方法来解析它并得到以下结果:

[
["09/2011", 2, 1],
["10/2011", 1, 1],
["12/2011", 0, 1]
]

任何帮助将不胜感激!

【问题讨论】:

  • 我认为您应该展示您的模型和查询逻辑,因为我不明白您为什么要从嵌套的 2 元素列表中的日期开始。如果您能给自己一个更好的起点,这可能会更容易。 编辑:哦,对于每条记录,您的输入列表应该是[lead_opened, lead_closed] 吗?
  • 正确,每个记录的输入列表应该是 [lead_opened, lead_closed]。我最终将列表展平并获得了唯一的日期,然后再创建了 2 个列表,一个包含所有生成的日期,另一个包含关闭的日期。然后我遍历日期并执行了 Leads_assigned_dates.count(date) 等。必须有更好的方法

标签: python-2.7 django-1.4


【解决方案1】:

它不是那么漂亮,但这应该可以:

from collections import defaultdict

d1 = defaultdict(int)
d2 = defaultdict(int)

data = [["09/2011","09/2011"],["09/2011","10/2011"],["10/2011","12/2011"]]

for d in data:
    d1[d[0]] += 1
    d2[d[1]] += 1

out = []
for key in set(d1.keys()) | set(d2.keys()):
    out.append([key, d1.get(key, 0), d2.get(key, 0)])

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
  • 2019-12-04
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
相关资源
最近更新 更多