Итак, у меня есть проблема, я делаю проект класса, где нам нужно реализовать, поэтому я возвращаюсь, чтобы решить кроссворд, учитывая словарь слов разных размеров, поэтому проблема в том, что я хочу реализовать быстрый способдоступ к этим словам словаря, поэтому я использую словарь 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 - это пустые позиции, в которых вы можете назначить слово, чтобы вы могли видетьесть некоторая позиция, где два слова пересекаются, и для этого мне нужно перебрать из словаря слов одно с тем же значением назначенного слова на пересечении, например:
в первой строке первые три позиции вы можетеназначьте АБС, если вы хотите назначить слово в первом столбце, оно должно начинаться с А.