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