Rumah > Soal Jawab > teks badan
Contohnya:
p={
'a':'aa',
'b':{
'b':'bb'
}
}
print(dict(p).values())
Dipulangkan ialah:
dict_values(['aa', {'b': 'bb'}])
Apa yang saya mahukan ialah aa dan bb. Bagaimana saya harus menulisnya. Terima kasih
巴扎黑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
Jika menggunakan python 3.3+, gantikan for _ in values(v): yield _
可用 yield from values(v)
dengan
phpcn_u15822017-05-18 10:56:30
Nampaknya hanya boleh dilalui
# 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)