Nói một cách dễ hiểu, việc lặp lại danh sách lồng nhau phải tuân theo cùng một thứ tự so với các vòng lặp tương đương được ghép sẵn cho.
Để hiểu rõ, chúng ta sẽ lấy một ví dụ đơn giản từ NLP. Bạn muốn tạo một danh sách tất cả các từ từ một danh sách các câu trong đó mỗi câu là một danh sách các từ.
>>> 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', '.']
Để xóa các từ lặp lại, bạn có thể sử dụng tập hợp {} thay vì danh sách []
>>> 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']
hoặc áp dụng list(set(all_words))
>>> all_unique_words = list(set(all_words))
['.', 'dog', 'the', 'chases', 'barks', 'mouse', 'The', 'cat']
itertools.chain
nếu bạn muốn có một danh sách phẳng:list(chain.from_iterable(entry for tag in tags for entry in entries if tag in entry))