Мне нужно найти все палиндромы, которые встречаются в определенном тексте. Я извлеку данные из внешнего файла. Мне нужно позаботиться об эффективной обработке данных памятью, поэтому я использую объект memoryview. Однако мне нужно выполнить некоторые строковые операции с объектом memoryview, поэтому я использовал метод tobytes (). Это правильный способ обработки этих объектов без копирования данных?
from collections import Counter
palindrome = []
# read file as binary data
with open('some_text.txt', 'rb') as fr:
# create memoryview object
data = memoryview(fr.read())
# applying the tobytes() method
text = data.tobytes()
# split the sentences to words
for word in text.split():
# append to palindrome list if true
if is_palindome(word):
palindrome.append(word)
# return a Counter object with the palindromes and the number of occurences
palindrome = Counter(palindrome)
print(palindrome)