Anlaşılırsa, yuvalanmış listeler yinelemesi döngüler için imbricated eşdeğeriyle aynı sırayı izlemelidir.
Anlamak için NLP'den basit bir örnek alacağız. Her cümlenin bir kelime listesi olduğu bir cümle listesinden tüm kelimelerin bir listesini oluşturmak istiyorsunuz.
>>> 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', '.']
Tekrarlanan kelimeleri kaldırmak için liste [] yerine {} kümesi kullanabilirsiniz
>>> 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']
veya uygula list(set(all_words))
>>> all_unique_words = list(set(all_words))
['.', 'dog', 'the', 'chases', 'barks', 'mouse', 'The', 'cat']
itertools.chain
Düzleştirilmiş bir liste istiyorsanız kullanın :list(chain.from_iterable(entry for tag in tags for entry in entries if tag in entry))