Můžeš potom napsat, jestli to fungovalo
Pokud máme seznam objektů, z nichž každý má nějaké identifikační číslo (ID), a některé z těchto objektů jsou potomky jiných objektů v seznamu, můžeme získat ID všech potomků takto:
def get_all_children_ids(objects_list, parent_id):
"""
Získává ID všech potomků daného rodiče v seznamu objektů.
:param objects_list: Seznam objektů, ve kterém hledat.
:param parent_id: ID rodičovského objektu.
:return: Seznam ID všech potomků daného rodiče.
"""
children_ids = []
for obj in objects_list:
if obj.parent_id == parent_id:
children_ids.append(obj.id)
children_ids.extend(get_all_children_ids(objects_list, obj.id))
return children_ids
Tato funkce pracuje rekurzivně. Pokud objekt v seznamu má parent_id rovno parent_id parametru funkce, pak je tento objekt potomkem a jeho ID se přidá do seznamu children_ids. Poté funkce rekurzivně volá sama sebe s ID potomka jako novým rodičem, aby získala ID všech potomků tohoto potomka. Tyto ID jsou také přidány do seznamu children_ids.
Poznámka: Tento kód předpokládá, že každý objekt v seznamu má vlastnost id a parent_id obsahující identifikátory objektů a jejich rodičů. Pokud tyto vlastnosti v seznamu objektů neexistují, bude potřeba funkci upravit.