python - 将嵌套字典中列表的元素加在一起 ​​- python

标签 python list dictionary nested element

我有嵌套的字典,下面是我到目前为止的代码输出,这正是我需要和希望它们成为的样子。我正在尝试添加第二个字典组 ID 号的列表元素;一起得到与第一个字典相关的每个元素发生的总出现次数;这是一个特定的日期

{'2014-06-14': {'205089113': [0, 1, 0, 假, 真], '268243219': [0, 1, 0, 假, 真], '216535211': [0, 0, 0, 假, 真], '207385741': [0, 0, 0, 假, 真], '207018490': [0, 0, 0, 假, 真], '204059430': [0, 0, 0, 假, 真], '209169283': [0, 1, 0, 假, 真], '232067397': [0, 0, 0, 假, 真], '204718647': [0, 1, 0, 假, 真], '205438195': [0, 1, 0, 假, 真]}, '2014-06-20': {'209989276': [1, 0, 0, 假, 真], '209840693': [1, 0, 0, 假, 真], '207067397': [1, 0, 0, 假, 真], '207919002': [1, 0, 0, 假, 真], '204718498': [2, 1, 0, 假, 真], '204437024': [1, 0, 0, 假, 真], '219878931': [1, 0, 0, 假, 真]},

我的意思的一个例子是 '2014-06-14':[0,5,0,0,10],'2014-06-20': [8,1,0,0,7]}

每次我尝试 len() 甚至 Counter 模块时,我都会遇到一个关键错误

下面的代码给了我第二个字典出现的次数,但似乎无法破解将其列表元素加在一起的编码,不确定是否有我不理解的直接方法,或者是否有可能

dates.keys() 中的日期: 打印日期,len(dates[date].keys())

试图指向正确的方向

最佳答案

如果您将子词典转换为 Pandas 数据框,它会让您轻松完成:

import pandas as pd

d = {'2014-06-14': {'205089113': [0, 1, 0, False, True], 
                    '268243219': [0, 1, 0, False, True], 
                    '216535211': [0, 0, 0, False, True], 
                    '207385741': [0, 0, 0, False, True], 
                    '207018490': [0, 0, 0, False, True], 
                    '204059430': [0, 0, 0, False, True], 
                    '209169283': [0, 1, 0, False, True], 
                    '232067397': [0, 0, 0, False, True], 
                    '204718647': [0, 1, 0, False, True], 
                    '205438195': [0, 1, 0, False, True]}, 
     '2014-06-20': {'209989276': [1, 0, 0, False, True], 
                    '209840693': [1, 0, 0, False, True], 
                    '207067397': [1, 0, 0, False, True], 
                    '207919002': [1, 0, 0, False, True], 
                    '204718498': [2, 1, 0, False, True], 
                    '204437024': [1, 0, 0, False, True], 
                    '219878931': [1, 0, 0, False, True]}}

new_d = {}
for k in d.iterkeys():
    new_d[k] = pd.DataFrame.from_dict(d[k], orient="index")

然后:

out = {}
for k in new_d:
    out[k] = new_d[k].sum().tolist()

print out
{'2014-06-14': [0.0, 5.0, 0.0, 0.0, 10.0], '2014-06-20': [8.0, 1.0, 0.0, 0.0, 7.0]}

拥有 Pandas 数据框将使您能够轻松应用其他功能。

希望这对您有所帮助。

关于python - 将嵌套字典中列表的元素加在一起 ​​- python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25068379/

相关文章:

python - 将嵌套的 html 表转换为 python 中的嵌套字典?

java - 从文件中打印偶数行和奇数行

list - 将列表应用于函数的参数

python - 将 csv 文件转换为字典列表

python - python 中的嵌套索引

python - RabbitMQ 错误 530 vhost 未与 pika 一起找到

python - Python中如何防止部分任意代码被编译?

python - Scipy 最大化线性规划不起作用

python - 将 Union 对象转换为间隔列表

ios - 如何正确设置和使用字典?