如:
p={
'a':'aa',
'b':{
'b':'bb'
}
}
print(dict(p).values())
返回的是:
dict_values(['aa', {'b': 'bb'}])
而想要的是aa和bb。应该怎么写,谢谢了
巴扎黑2017-05-18 10:56:30
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)
替换
phpcn_u15822017-05-18 10:56:30
貌似只能遍历
# 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)