python - 创建一个具有列表汇总值的字典/合并两个不同的字典以汇总值

标签 python list dictionary

我是 python 新手,使用字典和列表。 这是列表

detail = [(1, [u'apple', u'2017-07-03T08:03:32Z', 'boston']),


 (2, [u'orange', u'2017-07-03T08:58:35Z', 'NOLOCATION']),


 (3, [u'grape', u'2017-07-03T12:14:12Z', 'boston']),


 (4, [u'cherry', u'2017-07-04T13:16:44Z', 'new york']),


 (5, [u'strawberry', u'2017-07-06T10:56:22Z', 'san francisco']),


 (6, [u'plum', u'2017-07-06T10:56:22Z', 'seattle'])]

我想对此进行总结,以便 - 对于每个日期,我都会得到每个位置的计数拆分。像这样的 -

details_summary = {'2017-07-03':[(boston,2), (NOLOCATION,1)], '2017-07-04':
[new york,1], '2017-07-06':[(san francisco,1),(seattle,1)]}

我想要这种格式,因为我想为每个日期(键)和位置点(值)生成 map (可视化)。

我最终创建了两个看起来像这样的不同词典 -

location = {u'boston': 2, 'NOLOCATION': 1, u'new york': 1, u'san francisco': 
1, u'seattle': 1} 

date = {'2017-07-03':3, '2017-07-04':1, '2017-07-06':2}

现在,我想总结一下,以便我得到每个日期在不同位置的计数拆分,我被困在这里。

最佳答案

from collections import Counter
d = {}
for k, (w, t, l) in detail:
    date = t.split('T')[0] # you can choose to enhance date "isolation"
    if date in d:
        d[date].append(l)
    else:
        d[date] = [l]
details_summary = {k: Counter(d[k]).items() for k in d.keys()}

关于python - 创建一个具有列表汇总值的字典/合并两个不同的字典以汇总值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44939710/

相关文章:

python - MQTT 是如何工作的?如果接收方文件在发送方文件之后启动,则无法获取数据

python - 如何反转列表或向后循环?

python - 高效地在Python中随机列出数百万个元素

Python - 迭代字典键时的性能

python - 转储字典后 csv 文件中缺少值

python - xlsxwriter 的 set_header 未按预期工作

python - “系列”对象是可变的,因此它们不能被散列错误调用 to_csv

python - tkinter 防止使用返回键删除选定的文本

c# - 使用 Linq 读取第 n 层列表并将所需数据保存到另一个列表

c# - 用于类型化字典类型的 CodeDom InitExpression