Правильно ли используется объект memoryview в этом фрагменте? - PullRequest
1 голос
/ 03 апреля 2019

Мне нужно найти все палиндромы, которые встречаются в определенном тексте. Я извлеку данные из внешнего файла. Мне нужно позаботиться об эффективной обработке данных памятью, поэтому я использую объект 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)
...