Предполагая, что каждая пунктуация является отдельным токеном, вы можете сделать что-то вроде этого:
import string
sentences = [[], ['title', ':', 'an', 'inquiry', 'into', 'the', 'nature', 'and', 'causes', 'of', 'the', 'wealth', 'of',
'nations'], ['author', ':', 'adam', 'smith'],
['posting', 'date', ':', 'february', '28', ',', '2009', '[', 'ebook', '#', '3300', ']'],
['release', 'date', ':', 'april', ',', '2002'], ['[', 'last', 'updated', ':', 'june', '5', ',', '2011', ']'],
['language', ':', 'english'], [], [], ['produced', 'by', 'colin', 'muir']]
result = [list(filter(lambda x: x not in string.punctuation, sentence)) for sentence in sentences]
print(result)
выход
[[], ['title', 'an', 'inquiry', 'into', 'the', 'nature', 'and', 'causes', 'of', 'the', 'wealth', 'of', 'nations'], ['author', 'adam', 'smith'], ['posting', 'date', 'february', '28', '2009', 'ebook', '3300'], ['release', 'date', 'april', '2002'], ['last', 'updated', 'june', '5', '2011'], ['language', 'english'], [], [], ['produced', 'by', 'colin', 'muir']]
Идея состоит в том, чтобы использовать filter , чтобы удалить те токены, которые являются пунктуацией, поскольку filter возвращает список использования итератора, чтобы преобразовать его обратно в список. Вы также можете использовать эквивалентное понимание списка:
result = [[token for token in sentence if token not in string.punctuation] for sentence in sentences]