作者snowing98989 (娜琏狂热份子)
看板Python
标题[问题] 关於dict取值
时间Wed Sep 20 10:06:08 2017
各位前辈好
小弟是python新手
开发环境是ubuntu14.04 python3.4
目前有个问题想请教
假设有一个名称为test的dict长这样
{
"aaa": "123",
"bbb": "456",
"ccc": "789",
"ddd": "000",
"dog": {
"ccc": "apple"
},
"cat": {
"ccc": "banana"
},
"elephant": {
"ccc": "mouse"
},
"hello": "duck",
"hi": {
"ccc": "eleven"
},
"gg": {
"end": {
"ccc": "over"
}
}
}
我想要取"ccc"後面的值,像是789,apple那些
可是当我用test.get("ccc")的话只会出现789
然後我用for回圈把"ccc"这个key代入取值
发现只有出现789这个值
而当我print(test.keys())发现只有最外面那个"ccc"是key
其他的"ccc"都是value
请问有什麽方法能让我取得所有"ccc": 後面的值呢
我是有去找过nested dictionaries
可是我发现好像跟我这个dict不太一样
先谢谢各位前辈帮忙解答
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.135.210.83
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1505873173.A.F8A.html
1F:推 stucode: 可以用递回的方式把所有ccc挖出来。 09/20 10:15
2F:→ snowing98989: 想请问大概要怎麽用递回实现呢? 09/20 10:23
3F:→ snowing98989: 是要另外写个function然後来抓取ccc:後面的值吗? 09/20 10:24
4F:→ stucode: 先做个把一层dict中的ccc取出来的函数,假设叫get_ccc() 09/20 10:26
5F:→ stucode: 然後在get_ccc()取值的过程中,如果发现值是字典,就再 09/20 10:27
6F:→ anotherday: 判断value是不是dict, 如果是就看有没有ccc 09/20 10:28
7F:→ stucode: 递回呼叫get_ccc()并记下结果,最後合并起来就是答案。 09/20 10:28
8F:→ snowing98989: 先谢谢各位解答,我先来试试看 09/20 10:32
9F:→ snowing98989: 成功了,之前都没想到这个方法,可能思考得不够全面 09/20 11:16
10F:→ snowing98989: 如果以後还有问题也请各位前辈帮忙解答,谢谢 09/20 11:16
11F:→ mikapauli: 转成str再自己写parser 09/20 13:19
12F:→ snowing98989: 谢谢 我也会试试看这种方法的 09/20 15:17