我在Python中有一些嵌套的字典,需要一些幫助才能讓我的代碼完全工作。將值插入到嵌套字典
首先代碼:
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}}}
它的字典,是在外部層面,國家,內部級,狀態,內部級,職務:計數
由於KERELA 1234應該有一個2,所以計數不能正確工作,然後它所做的就是用已經在dictiona中的狀態替換最新狀態RY。例如TX 1234不會顯示,因爲它後來被TX 12345替換掉
感謝您提前提供的所有幫助!
因爲與KERELA,首要條件第二個電話'如果國家字典:'是真實的。 – njzk2 2014-10-17 15:19:42
你的代碼真的很奇怪。首先你檢查一個項目是否在字典中,而不是檢查它是否在字典中。換句話說,這將是唯一可行的兩種情況。 – 2014-10-17 15:20:22
@AndyP我編輯了我的答案,以添加一個替代方法來做到這一點。 – parchment 2014-10-17 15:36:56