Как я могу преобразовать строку CP1252 в список символов в NumPy - PullRequest
0 голосов
/ 11 октября 2019

Итак, у меня есть проблема, я делаю проект класса, где нам нужно реализовать, поэтому я возвращаюсь, чтобы решить кроссворд, учитывая словарь слов разных размеров, поэтому проблема в том, что я хочу реализовать быстрый способдоступ к этим словам словаря, поэтому я использую словарь NumPy, где ключи являются длина слова и в качестве значения, есть NUMPY массив слов.

на данный момент у меня есть структура, похожая на:

слов [4]: ​​{['ABBS', 'BACK', ..., 'ревность']}

но я ищуструктура, к которой я могу получить доступ к каждому отдельному символу слов, чтобы мне было легче сортировать слова из словаря, структура, которую я хочу иметь, выглядит следующим образом:

words [4]: ​​{['A',' B ',' B ',' S '], [' B ',' A ',' C ',' K '], ..., [' Z ',' E ',' A ','L']}

Я пытался многими способами преобразовать строку в список символов, но она не работает.

я делаю следующее:

dictionaryF = open(self.dictionaryFile,'r')
dictionary = {}
words = dictionaryF.readlines()
dictionaryF.close()

length = np.array([len(i) for i in words]) 




for i in self.maxLen:
    dictionary[i] = np.array( words[np.where(length==i)])

self.dictionary = dictionary

self.maxLen - список с уникальными длинамислова в кроссворде, я использую его, чтобы не иметь лишних слов.

self.dictionary - это словарь, для решения которого я сохраню атрибут моего класса.

Мне нужен быстрый способпрочитайте и обработайте все это, чтобы чтение файла не заняло много часов, потому что мне иногда нужно прочитать до 600 тысяч слов.

Все это для ускорения разгадывания кроссворда. Предположим, у вас есть кроссворд, например:

0   0   0   #   0   0
0   #   0   0   0   0
0   #   0   #   0   0
0   0   0   0   #   0
0   #   0   #   0   0
0   0   0   0   0   #
#   0   #   0   0   #

0 - это пустые позиции, в которых вы можете назначить слово, чтобы вы могли видетьесть некоторая позиция, где два слова пересекаются, и для этого мне нужно перебрать из словаря слов одно с тем же значением назначенного слова на пересечении, например:

в первой строке первые три позиции вы можетеназначьте АБС, если вы хотите назначить слово в первом столбце, оно должно начинаться с А.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...