Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Ú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)
Předmět Autor Datum
Teda nevím jestli jsem správně pochopil, ale nestačilo by prostě místo: ret.append(objekt) dát re…
Wikan 03.12.2022 13:42
Wikan
Ano, ted mi to vrací celý objekt, ale to si upravím, problém mám ten, že potřebuji získat objekty/ne…
pman 03.12.2022 13:48
pman
Takže jaká jsou data a jak má vypadat výsledek? Já ti do hlavy nevidím.
Wikan 03.12.2022 14:07
Wikan
Data jsou uloženy v tom poli objektů 'data' a výsledek by měl být pole těch 'ide' . pokud zavolám f…
pman 03.12.2022 14:29
pman
do toho pole data nepaří ten poslední řádek, to je úklep. {"ide":9,"ide_rodice":1,"nazev":"ide9/ide…
pman 03.12.2022 14:30
pman
Tak jsem měl takové neodbytné tušení, že jsem na stejnou otázku už odpovídal a taky že jo. A kupodiv…
Wikan 03.12.2022 14:35
Wikan
Tak děkuji, snad je to funkční. Vůbec ale netuším, že bych to v minulosti už někdy potřeboval :-( poslední
pman 03.12.2022 15:30
pman

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ň

ret=ziskej_deti(0)

pokud zavolám s hodnotou 1, tak by to mělo vrátit pole ide 3,7,9

ret=ziskej_deti(1)

pokud zavolám s hodnotou 4, tak by to mělo vrátit pole ide 5,6,2,9

ret=ziskej_deti(4)

do toho pole data nepaří ten poslední řádek, to je úklep.

{"ide":9,"ide_rodice":1,"nazev":"ide9/ide_rodice1"}

mělo by to být

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"},
]

Zpět do poradny Odpovědět na původní otázku Nahoru