Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak získat id všech potomků ze seznamu objektů v Pythonu 3

Můžeš potom napsat, jestli to fungovalo :-D

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.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny