Ошибка памяти при замене слов в str Python (пробовал с представлением памяти, но имел ошибки оператора +) - PullRequest
0 голосов
/ 14 октября 2018

Я задаю этот вопрос, потому что в настоящее время он блокирует меня: / У меня есть ошибки памяти, и я не могу от них избавиться.Я искал в Интернете, и я нашел ответы о MemoryView, но это не помогло мне, у меня были + ошибки оператора (AttributeError: 'memoryview' object has no attribute 'lower' mv.lower (), TypeError: a bytes-like object is required, not 'str' mv.tobytes (). Lower (), TypeError: unsupported operand type(s) for +: 'memoryview' and 'str'mv [: i] + string + mv [i + length:])

, и я не мог вставить слова, так что ... Вот мой код (ошибка возникает в части «Поиск слова»):

#Apply iĉismo on file
teksto = 'Gesinjoroj, la viraj nomoj estas nomoj por viroj ne aŭ virinojn ! sinjoroj kaj sinjorinoj !'

#List of nouns to iĉismi
nouns = [['viro', 'virino', 'vira'],
         ['homicxo', 'homino', 'icxa']]


#Search for words
#viro 
for i, n in enumerate(nouns[0]):
    index = 0
    while index < len(teksto):
        a = teksto[index:].lower().find(n) + index
        if a - index != -1:
            index = a
            lastlen = len(n)
            newlen = len(listo[1][i])
            teksto = teksto[:index] + nouns[1][i] + teksto[index + lastlen:]
            index += newlen
        else:
            break;
        index += 1

print(teksto)

иногда я получаю ошибку памяти, но это случайно

...