我有嵌套的字典,下面是我到目前为止的代码输出,这正是我需要和希望它们成为的样子。我正在尝试添加第二个字典组 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/