En compréhension, l'itération des listes imbriquées doit suivre le même ordre que les boucles for imbriquées équivalentes.
Pour comprendre, nous allons prendre un exemple simple tiré de la PNL. Vous voulez créer une liste de tous les mots à partir d'une liste de phrases où chaque phrase est une liste de mots.
>>> list_of_sentences = [['The','cat','chases', 'the', 'mouse','.'],['The','dog','barks','.']]
>>> all_words = [word for sentence in list_of_sentences for word in sentence]
>>> all_words
['The', 'cat', 'chases', 'the', 'mouse', '.', 'The', 'dog', 'barks', '.']
Pour supprimer les mots répétés, vous pouvez utiliser un ensemble {} au lieu d'une liste [].
>>> all_unique_words = list({word for sentence in list_of_sentences for word in sentence}]
>>> all_unique_words
['.', 'dog', 'the', 'chase', 'barks', 'mouse', 'The', 'cat']
ou appliquer list(set(all_words))
>>> all_unique_words = list(set(all_words))
['.', 'dog', 'the', 'chases', 'barks', 'mouse', 'The', 'cat']