我在Python中有一些嵌套的dict,需要一些帮助才能让我的代码完全正常工作。你知道吗
首先是代码:
data = {}
def insertIntoDataStruct(country, state,job,count,dict):
if country in dict:
dict[country][state] = {job: count}
elif country not in dict:
dict[country] = {state: {job: count}}
elif state not in dict[country]:
dict[country] = {state: {job: count}}
elif job not in dict[country][state]:
dict[country][state][job] = count
else:
dict[country][state][job] += count
insertIntoDataStruct("US", "TX", 1234, 1, data)
insertIntoDataStruct("IN", "KERELA", 1234, 1, data)
insertIntoDataStruct("IN", "KERELA", 1234, 1, data)
insertIntoDataStruct("US", "TX", 12345, 1, data)
insertIntoDataStruct("US", "MI", 1234, 1, data)
insertIntoDataStruct("IN", "M", 1234, 1, data)
print data
目前正在打印:
{'US': {'MI': {1234: 1}, 'TX': {12345: 1}}, 'IN': {'M': {1234: 1}, 'KERELA': {1234: 1}}}
它是一本字典,在外部层次,国家,内部层次,国家,内部层次,工作:计数
由于Kerela1234应该有一个2,计数工作不正常,然后它似乎在用字典中已经存在的任何状态替换最新的状态。例如,TX 1234没有出现,因为它后来被TX 12345取代
提前谢谢大家的帮助!你知道吗
您的函数需要一些修复,请尝试以下操作:
这可能是你最初的意思,如果国家不存在,那就创造它,否则如果国家不存在,等等。。。你知道吗
另一种方法是使用
defaultdict
:相关问题 更多 >
编程相关推荐