Re: [問題] 巢狀字典的問題

作者: kimball (我在抗拒什麼...)   2016-10-06 03:14:37
※ 引述《vanilla1474 (wawa)》之銘言:
: 大家好,我是Python 超級新手,最近自學遇到dict問題,卡關好多天了,麻煩大家教教
: 我了。
: A = { 'fruits': { 'apple': 10, 'bananas': 30, 'orange': 22 }, 'meat': { 'beef'
: : 50, 'pork': 45, 'chicken':30 } }
: 當我輸入30時,如何得到對應的key: bananas & chicken 的答案?反過來,如果是知道A
: pple 怎麼得到它的value呢?
: 我只會從最外面一層一層進去查
: 例:A['meat']['beef'] = 50
: 一直想不出可以用什麼方法找出內層字典的 key & value 啊......
: 感激不盡了!
以你要的功能來看,資料其實不要存成巢狀字典比較好
以下假設你不須要外面那層字典的 key 的資訊 (也就是 fruits 和 meat)
簡單的 solution 是把巢狀字典攤平
我這邊將資料結構轉換成內層字典的 key-value pair list
b=[y for x in A.values() for y in x.iteritems()]
這樣 b 就會變成
[('pork', 45),
('chicken', 30),
('beef', 50),
('orange', 22),
('apple', 10),
('bananas', 30)]
如此一來,你要的功能
1. 30 的 item

Links booklink

Contact Us: admin [ a t ] ucptt.com