The Flat Dictionary

來源:互聯網
上載者:User

標籤:blog   io   for   ar   cti   代碼   div   log   

The Flat Dictionary

原來的代碼沒處理dict為空白的情況

 1 def flatten(dictionary): 2     #[] is a list 3     #() is a tuple 4     stack = [((), dictionary)] 5  6     result = {} #result is a dict 7  8     while stack: 9         path, current = stack.pop() #get a tuple10 11         for k, v in current.items(): #dict::items return key and values tuple12             if isinstance(v, dict): #is a instance of dict13                 stack.append((path + (k,), v)) #add key to tuple such as (xxx, yyy, zzz) and the element in stack is like ((xxx, yyy, zzz), value)14             else:15                 result["/".join((path + (k,)))] = v16 17         if len(current) == 0: #when the dict is empty18             result["/".join(path)] = ""19 20     return result

(k,)一個元素的tuple

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.