이해하자면, 중첩 된 목록 반복은 동일한 imbricated for 루프와 동일한 순서를 따라야합니다.
이해하기 위해 NLP에서 간단한 예를 들어 보겠습니다. 각 문장이 단어 목록 인 문장 목록에서 모든 단어 목록을 만들고 싶습니다.
>>> 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', '.']
반복되는 단어를 제거하려면 목록 [] 대신 {} 집합을 사용할 수 있습니다.
>>> 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']
또는 적용 list(set(all_words))
>>> all_unique_words = list(set(all_words))
['.', 'dog', 'the', 'chases', 'barks', 'mouse', 'The', 'cat']
itertools.chain
평면화 된 목록을 원하는 경우 사용 :list(chain.from_iterable(entry for tag in tags for entry in entries if tag in entry))