萌新求助,帮我看一句程序,我想了一下午也没想明白

萌新求助,我想了一下午也没想明白

countryData.setdefault(state,{})
countryData[state].setdefault(country,{'tracts':0,'pop':0})

countryData.setdefault(state,{country:{'tracts':0,'pop':0}})
这两句话有什么区别吗?
他们两个的意思在我看来完全一样啊
可是两行的代码就可以运行,一行的那个为什么就是不行呢?

https://blog.csdn.net/weixin_49348265/article/details/108224834

countrydata.setdefault(state, {}) # .setdefault 函数,为已有数据中添加值,如有则直接累加,如无则添加新的类目再赋值

也就是说,首先要初始化下countrydata