def filter_keywords(text: str, keywords: list[str]) -> list[str]: """ Prend un texte et une liste de mots‑clés (insensibles à la casse). Retourne les mots du texte (sans ponctuation) qui contiennent au moins un mot‑clé. Si un mot du texte contient plusieurs mots‑clés, il n’est listé qu’une fois. """ res = [] for word in keywords: nb_occ = text.lower().count(word.lower()) res.extend([word] * nb_occ) return res def main(): text = "Python est génial ! J'adore Python, surtout les listes." keywords = ["python", "liste"] print(filter_keywords(text, keywords)) if __name__ == "__main__": main()