Úprava funkce pro získání všech dětí
Ahoj, mám funkci která získá objekty podle ide_rodice, potřebuji ale získat veškeré id všech vnořených dětí. Poradí někdo? Děkuji
data=[
{"ide":1,"ide_rodice":0,"nazev":"ide1/ide_rodice0"},
{"ide":2,"ide_rodice":5,"nazev":"ide2/ide_rodice5"},
{"ide":3,"ide_rodice":1,"nazev":"ide3/ide_rodice1"},
{"ide":4,"ide_rodice":8,"nazev":"ide4/ide_rodice8"},
{"ide":5,"ide_rodice":4,"nazev":"ide5/ide_rodice4"},
{"ide":6,"ide_rodice":4,"nazev":"ide6/ide_rodice4"},
{"ide":7,"ide_rodice":1,"nazev":"ide7/ide_rodice1"},
{"ide":8,"ide_rodice":3,"nazev":"ide8/ide_rodice3"},
{"ide":9,"ide_rodice":5,"nazev":"ide9/ide_rodice5"},
{"ide":9,"ide_rodice":1,"nazev":"ide9/ide_rodice1"}
]
def ziskej_deti(ide_rodice):
ret=[]
for objekt in data:
if objekt['ide_rodice']==ide_rodice:
ret.append(objekt)
return ret
ret=ziskej_deti(1)
print(ret)
Teda nevím jestli jsem správně pochopil, ale nestačilo by prostě místo:
dát
?
Ano, ted mi to vrací celý objekt, ale to si upravím, problém mám ten, že potřebuji získat objekty/nebo jen id všech vnořených děti, ne jenom jedné úrovně jak to mám teď.
Takže jaká jsou data a jak má vypadat výsledek? Já ti do hlavy nevidím.
Data jsou uloženy v tom poli objektů 'data' a výsledek by měl být pole těch 'ide' .
pokud zavolám funkci s hodnotou 0, tak by to mělo vrátit pole všech ide jelikož 0 je nejvyšší úroveň
pokud zavolám s hodnotou 1, tak by to mělo vrátit pole ide 3,7,9
pokud zavolám s hodnotou 4, tak by to mělo vrátit pole ide 5,6,2,9
do toho pole data nepaří ten poslední řádek, to je úklep.
mělo by to být
Tak jsem měl takové neodbytné tušení, že jsem na stejnou otázku už odpovídal a taky že jo. A kupodivu taky od tebe.
https://pc.poradna.net/questions/3126994-oprava-kodu-v-pythonu
Tak děkuji, snad je to funkční. Vůbec ale netuším, že bych to v minulosti už někdy potřeboval