扫码关注官方订阅号
如:
p={ 'a':'aa', 'b':{ 'b':'bb' } } print(dict(p).values())
返回的是:
dict_values(['aa', {'b': 'bb'}])
而想要的是aa和bb。应该怎么写,谢谢了
def values(d): for v in d.values(): if isinstance(v, dict): for _ in values(v): yield _ else: yield v data = values({1:1,2:{2:2,3:{3:3,4:4}}}) for v in data: print(v) # 1 2 3 4
如果使用python 3.3+,for _ in values(v): yield _ 可用 yield from values(v) 替换
for _ in values(v): yield _
yield from values(v)
貌似只能遍历
# coding: utf-8 p={ 'a':'aa', 'b':{ 'b':'bb', 'c': { 'c': 'cc', 'd': { 'd': 'dd' } } } } def f(d): nl = [] for _ in d.values(): nl += f(_) if isinstance(_, dict) else [_] return nl print f(p)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
如果使用python 3.3+,
for _ in values(v): yield _
可用yield from values(v)
替换貌似只能遍历