У меня есть список из 2 миллионов кортежей, где первый элемент - текст, а второй - целое число.например,
list_of_tuples = [('here is some text', 1), ('this is more text', 5), ('a final tuple', 12)]
Я хотел бы маркировать первый элемент в каждом кортеже и присоединить все списки слов к сплющенному списку так, чтобы желаемый результат был.
list_of_tokenized_tuples = [(['here', 'is', 'some', 'text'], 1), (['this', 'is', 'more', 'text'], 5), (['a', 'final', 'tuple'], 12)]
list_of_all_words = ['here', 'is', 'some', 'text', 'this', 'is', 'more', 'text', 'a', 'final', 'tuple']
Такпока, я считаю, что я нашел способ добиться этого с помощью цикла for, однако из-за длины списка это действительно требует много времени.Есть ли способ, которым я могу токенизировать первый элемент в кортежах и / или сгладить список всех слов так, чтобы не было циклов?
list_of_tokenized_tuples = []
list_of_all_words = []
for text, num in list_of_tuples:
tokenized_text = list(word_tokenize(text))
tokenized_tuples = (tokenized_text, num)
list_of_all_words.append(tokenized_text)
list_of_tokenized_tuples.append(tokenized_tuples)
list_of_all_words = [val for sublist in list_of_all_words for val in sublist]